├── .codeqlmanifest.json ├── .devcontainer └── devcontainer.json ├── .editorconfig ├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── lgtm-com---false-positive.md │ └── ql---general.md ├── codeql │ └── codeql-config.yml ├── labeler.yml └── workflows │ ├── check-change-note.yml │ ├── codeql-analysis.yml │ ├── labeler.yml │ └── query-list.yml ├── .gitignore ├── .lgtm.yml ├── .vscode ├── .gitattributes ├── extensions.json ├── settings.json └── tasks.json ├── CODEOWNERS ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── change-notes ├── 1.18 │ ├── analysis-cpp.md │ ├── analysis-csharp.md │ └── analysis-javascript.md ├── 1.19 │ ├── analysis-cpp.md │ ├── analysis-csharp.md │ ├── analysis-java.md │ ├── analysis-javascript.md │ ├── analysis-python.md │ ├── extractor-javascript.md │ └── support │ │ ├── framework-support.rst │ │ ├── java-frameworks.csv │ │ ├── javascript-typescript-frameworks.csv │ │ ├── language-support.rst │ │ ├── python-frameworks.csv │ │ └── versions-compilers.csv ├── 1.20 │ ├── analysis-cpp.md │ ├── analysis-csharp.md │ ├── analysis-java.md │ ├── analysis-javascript.md │ ├── analysis-python.md │ └── extractor-javascript.md ├── 1.21 │ ├── analysis-cpp.md │ ├── analysis-csharp.md │ ├── analysis-java.md │ ├── analysis-javascript.md │ ├── analysis-python.md │ └── extractor-javascript.md ├── 1.22 │ ├── analysis-cpp.md │ ├── analysis-csharp.md │ ├── analysis-java.md │ ├── analysis-javascript.md │ └── analysis-python.md ├── 1.23 │ ├── analysis-cpp.md │ ├── analysis-csharp.md │ ├── analysis-java.md │ ├── analysis-javascript.md │ ├── analysis-python.md │ └── extractor-javascript.md ├── 1.24 │ ├── analysis-cpp.md │ ├── analysis-csharp.md │ ├── analysis-java.md │ ├── analysis-javascript.md │ ├── analysis-python.md │ └── extractor-javascript.md ├── 1.25 │ ├── analysis-cpp.md │ ├── analysis-csharp.md │ ├── analysis-java.md │ ├── analysis-javascript.md │ └── analysis-python.md ├── 1.26 │ ├── analysis-cpp.md │ ├── analysis-java.md │ ├── analysis-javascript.md │ └── analysis-python.md └── support │ └── README.md ├── config ├── identical-files.json ├── opcode-qldoc.py └── sync-files.py ├── cpp ├── autobuilder │ ├── .gitignore │ ├── Semmle.Autobuild.Cpp.Tests │ │ ├── BuildScripts.cs │ │ └── Semmle.Autobuild.Cpp.Tests.csproj │ └── Semmle.Autobuild.Cpp │ │ ├── CppAutobuilder.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── AssemblyInfo.cs │ │ └── Semmle.Autobuild.Cpp.csproj ├── change-notes │ ├── 2020-09-29-range-analysis-rollup.md │ ├── 2020-10-21-erroneous-types.md │ ├── 2020-10-21-size-check-queries.md │ ├── 2020-11-02-unused-local-variable.md │ ├── 2020-11-05-formatting-function.md │ ├── 2020-11-05-private-models.md │ ├── 2020-11-12-unsafe-use-of-this.md │ ├── 2020-11-27-downgrade-to-recommendation.md │ ├── 2021-02-04-unsigned-difference-expression-compared-zero.md │ ├── 2021-02-24-memset-may-be-deleted.md │ ├── 2021-03-01-fluent-interface-data-flow.md │ ├── 2021-03-11-failed-extractions.md │ └── 2021-03-17-av-rule-79.md ├── config │ └── suites │ │ ├── c │ │ ├── code-review │ │ ├── correctness │ │ ├── experimental │ │ ├── internal │ │ ├── maintainability │ │ ├── metric-defects │ │ ├── metrics │ │ ├── metrics-external │ │ ├── readability │ │ └── useless-code │ │ ├── cpp │ │ ├── code-review │ │ ├── correctness │ │ ├── experimental │ │ ├── internal │ │ ├── maintainability │ │ ├── metric-defects │ │ ├── metrics │ │ ├── metrics-external │ │ ├── readability │ │ └── useless-code │ │ ├── default │ │ ├── c │ │ └── cpp │ │ ├── lgtm │ │ ├── cpp-alerts-lgtm │ │ ├── cpp-lgtm │ │ ├── cpp-metrics-lgtm │ │ └── cpp-queries-lgtm │ │ └── security │ │ ├── all │ │ ├── cwe-022 │ │ ├── cwe-078 │ │ ├── cwe-079 │ │ ├── cwe-089 │ │ ├── cwe-114 │ │ ├── cwe-119 │ │ ├── cwe-120 │ │ ├── cwe-121 │ │ ├── cwe-129 │ │ ├── cwe-131 │ │ ├── cwe-134 │ │ ├── cwe-170 │ │ ├── cwe-190 │ │ ├── cwe-253 │ │ ├── cwe-290 │ │ ├── cwe-311 │ │ ├── cwe-327 │ │ ├── cwe-367 │ │ ├── cwe-416 │ │ ├── cwe-428 │ │ ├── cwe-457 │ │ ├── cwe-468 │ │ ├── cwe-497-expensive │ │ ├── cwe-676 │ │ ├── cwe-732 │ │ ├── cwe-764 │ │ ├── cwe-772 │ │ ├── cwe-772-expensive │ │ ├── cwe-807 │ │ ├── cwe-835 │ │ ├── default │ │ └── secondary ├── ql │ ├── examples │ │ ├── qlpack.yml │ │ ├── queries.xml │ │ └── snippets │ │ │ ├── addressof.ql │ │ │ ├── arrayaccess.ql │ │ │ ├── castexpr.ql │ │ │ ├── catch_exception.ql │ │ │ ├── constructor_call.ql │ │ │ ├── derives_from_class.ql │ │ │ ├── emptyblock.ql │ │ │ ├── emptythen.ql │ │ │ ├── eq_true.ql │ │ │ ├── field_access.ql │ │ │ ├── function_call.ql │ │ │ ├── integer_literal.ql │ │ │ ├── mutualrecursion.ql │ │ │ ├── override_method.ql │ │ │ ├── returnstatement.ql │ │ │ ├── singletonblock.ql │ │ │ ├── switchcase.ql │ │ │ ├── ternaryconditional.ql │ │ │ ├── throw_exception.ql │ │ │ ├── todocomment.ql │ │ │ ├── toomanyparams.ql │ │ │ ├── unusedlocalvar.ql │ │ │ ├── unusedmethod.ql │ │ │ ├── unusedparam.ql │ │ │ ├── voidreturntype.ql │ │ │ └── volatilevariable.ql │ ├── src │ │ ├── .project │ │ ├── .qlpath │ │ ├── .vs │ │ │ └── VSWorkspaceSettings.json │ │ ├── AlertSuppression.ql │ │ ├── Architecture │ │ │ ├── FeatureEnvy.qhelp │ │ │ ├── FeatureEnvy.ql │ │ │ ├── General Class-Level Information │ │ │ │ ├── ClassHierarchies.ql │ │ │ │ ├── HubClasses.ql │ │ │ │ ├── InheritanceDepthDistribution.qhelp │ │ │ │ ├── InheritanceDepthDistribution.ql │ │ │ │ └── index.qhelp │ │ │ ├── General Namespace-Level Information │ │ │ │ ├── CyclicNamespaces.qhelp │ │ │ │ ├── CyclicNamespaces.ql │ │ │ │ ├── GlobalNamespaceClasses.qhelp │ │ │ │ ├── GlobalNamespaceClasses.ql │ │ │ │ └── NamespaceDependencies.ql │ │ │ ├── General Top-Level Information │ │ │ │ ├── GeneralStatistics.qhelp │ │ │ │ └── GeneralStatistics.ql │ │ │ ├── InappropriateIntimacy.qhelp │ │ │ ├── InappropriateIntimacy.ql │ │ │ ├── Refactoring Opportunities │ │ │ │ ├── ClassesWithManyDependencies.cpp │ │ │ │ ├── ClassesWithManyDependencies.qhelp │ │ │ │ ├── ClassesWithManyDependencies.ql │ │ │ │ ├── ClassesWithManyFields.cpp │ │ │ │ ├── ClassesWithManyFields.qhelp │ │ │ │ ├── ClassesWithManyFields.ql │ │ │ │ ├── ComplexFunctions.qhelp │ │ │ │ ├── ComplexFunctions.ql │ │ │ │ ├── CyclomaticComplexity.qhelp │ │ │ │ ├── CyclomaticComplexity.ql │ │ │ │ ├── FunctionsWithManyParameters.cpp │ │ │ │ ├── FunctionsWithManyParameters.qhelp │ │ │ │ └── FunctionsWithManyParameters.ql │ │ │ └── index.qhelp │ │ ├── Best Practices │ │ │ ├── BlockWithTooManyStatements.qhelp │ │ │ ├── BlockWithTooManyStatements.ql │ │ │ ├── ComplexCondition.cpp │ │ │ ├── ComplexCondition.qhelp │ │ │ ├── ComplexCondition.ql │ │ │ ├── Exceptions │ │ │ │ ├── AccidentalRethrow.qhelp │ │ │ │ ├── AccidentalRethrow.ql │ │ │ │ ├── CatchingByValue.qhelp │ │ │ │ ├── CatchingByValue.ql │ │ │ │ ├── LeakyCatch.qhelp │ │ │ │ ├── LeakyCatch.ql │ │ │ │ ├── ThrowingPointers.qhelp │ │ │ │ └── ThrowingPointers.ql │ │ │ ├── Hiding │ │ │ │ ├── DeclarationHidesParameter.cpp │ │ │ │ ├── DeclarationHidesParameter.qhelp │ │ │ │ ├── DeclarationHidesParameter.ql │ │ │ │ ├── DeclarationHidesVariable.cpp │ │ │ │ ├── DeclarationHidesVariable.qhelp │ │ │ │ ├── DeclarationHidesVariable.ql │ │ │ │ ├── LocalVariableHidesGlobalVariable.cpp │ │ │ │ ├── LocalVariableHidesGlobalVariable.qhelp │ │ │ │ ├── LocalVariableHidesGlobalVariable.ql │ │ │ │ └── Shadowing.qll │ │ │ ├── Likely Errors │ │ │ │ ├── EmptyBlock.cpp │ │ │ │ ├── EmptyBlock.qhelp │ │ │ │ ├── EmptyBlock.ql │ │ │ │ ├── OffsetUseBeforeRangeCheck.c │ │ │ │ ├── OffsetUseBeforeRangeCheck.qhelp │ │ │ │ ├── OffsetUseBeforeRangeCheck.ql │ │ │ │ ├── Slicing.cpp │ │ │ │ ├── Slicing.qhelp │ │ │ │ └── Slicing.ql │ │ │ ├── Magic Constants │ │ │ │ ├── JapaneseEraDate.qhelp │ │ │ │ ├── JapaneseEraDate.ql │ │ │ │ ├── MagicConstants.qll │ │ │ │ ├── MagicConstantsNumbers.cpp │ │ │ │ ├── MagicConstantsNumbers.qhelp │ │ │ │ ├── MagicConstantsNumbers.ql │ │ │ │ ├── MagicConstantsString.qhelp │ │ │ │ ├── MagicConstantsString.ql │ │ │ │ ├── MagicNumbersUseConstant.ql │ │ │ │ └── MagicStringsUseConstant.ql │ │ │ ├── NVI.ql │ │ │ ├── NVIHub.ql │ │ │ ├── RuleOfThree.qhelp │ │ │ ├── RuleOfThree.ql │ │ │ ├── RuleOfTwo.cpp │ │ │ ├── RuleOfTwo.qhelp │ │ │ ├── RuleOfTwo.ql │ │ │ ├── SloppyGlobal.qhelp │ │ │ ├── SloppyGlobal.ql │ │ │ ├── SwitchLongCase.cpp │ │ │ ├── SwitchLongCase.qhelp │ │ │ ├── SwitchLongCase.ql │ │ │ ├── Unused Entities │ │ │ │ ├── UnusedIncludes.ql │ │ │ │ ├── UnusedLocals.cpp │ │ │ │ ├── UnusedLocals.qhelp │ │ │ │ ├── UnusedLocals.ql │ │ │ │ ├── UnusedStaticFunctions.cpp │ │ │ │ ├── UnusedStaticFunctions.qhelp │ │ │ │ ├── UnusedStaticFunctions.ql │ │ │ │ ├── UnusedStaticVariables.cpp │ │ │ │ ├── UnusedStaticVariables.qhelp │ │ │ │ └── UnusedStaticVariables.ql │ │ │ ├── UseOfGoto.qhelp │ │ │ ├── UseOfGoto.ql │ │ │ └── index.qhelp │ │ ├── Critical │ │ │ ├── DeadCodeCondition.cpp │ │ │ ├── DeadCodeCondition.qhelp │ │ │ ├── DeadCodeCondition.ql │ │ │ ├── DeadCodeFunction.cpp │ │ │ ├── DeadCodeFunction.qhelp │ │ │ ├── DeadCodeFunction.ql │ │ │ ├── DeadCodeGoto.cpp │ │ │ ├── DeadCodeGoto.qhelp │ │ │ ├── DeadCodeGoto.ql │ │ │ ├── DescriptorMayNotBeClosed.cpp │ │ │ ├── DescriptorMayNotBeClosed.qhelp │ │ │ ├── DescriptorMayNotBeClosed.ql │ │ │ ├── DescriptorNeverClosed.cpp │ │ │ ├── DescriptorNeverClosed.qhelp │ │ │ ├── DescriptorNeverClosed.ql │ │ │ ├── FileClosed.qll │ │ │ ├── FileMayNotBeClosed.cpp │ │ │ ├── FileMayNotBeClosed.qhelp │ │ │ ├── FileMayNotBeClosed.ql │ │ │ ├── FileNeverClosed.cpp │ │ │ ├── FileNeverClosed.qhelp │ │ │ ├── FileNeverClosed.ql │ │ │ ├── GlobalUseBeforeInit.cpp │ │ │ ├── GlobalUseBeforeInit.qhelp │ │ │ ├── GlobalUseBeforeInit.ql │ │ │ ├── InconsistentNullnessTesting.cpp │ │ │ ├── InconsistentNullnessTesting.qhelp │ │ │ ├── InconsistentNullnessTesting.ql │ │ │ ├── InitialisationNotRun.cpp │ │ │ ├── InitialisationNotRun.qhelp │ │ │ ├── InitialisationNotRun.ql │ │ │ ├── LargeParameter.cpp │ │ │ ├── LargeParameter.qhelp │ │ │ ├── LargeParameter.ql │ │ │ ├── LateNegativeTest.cpp │ │ │ ├── LateNegativeTest.qhelp │ │ │ ├── LateNegativeTest.ql │ │ │ ├── LoopBounds.qll │ │ │ ├── MemoryFreed.qll │ │ │ ├── MemoryMayNotBeFreed.cpp │ │ │ ├── MemoryMayNotBeFreed.qhelp │ │ │ ├── MemoryMayNotBeFreed.ql │ │ │ ├── MemoryMayNotBeFreedGood.cpp │ │ │ ├── MemoryNeverFreed.cpp │ │ │ ├── MemoryNeverFreed.qhelp │ │ │ ├── MemoryNeverFreed.ql │ │ │ ├── MissingNegativityTest.cpp │ │ │ ├── MissingNegativityTest.qhelp │ │ │ ├── MissingNegativityTest.ql │ │ │ ├── MissingNullTest.cpp │ │ │ ├── MissingNullTest.qhelp │ │ │ ├── MissingNullTest.ql │ │ │ ├── Negativity.qll │ │ │ ├── NewArrayDeleteMismatch.cpp │ │ │ ├── NewArrayDeleteMismatch.qhelp │ │ │ ├── NewArrayDeleteMismatch.ql │ │ │ ├── NewDelete.qll │ │ │ ├── NewDeleteArrayMismatch.cpp │ │ │ ├── NewDeleteArrayMismatch.qhelp │ │ │ ├── NewDeleteArrayMismatch.ql │ │ │ ├── NewFreeMismatch.cpp │ │ │ ├── NewFreeMismatch.qhelp │ │ │ ├── NewFreeMismatch.ql │ │ │ ├── NotInitialised.cpp │ │ │ ├── NotInitialised.qhelp │ │ │ ├── NotInitialised.ql │ │ │ ├── OverflowCalculated.cpp │ │ │ ├── OverflowCalculated.qhelp │ │ │ ├── OverflowCalculated.ql │ │ │ ├── OverflowDestination.cpp │ │ │ ├── OverflowDestination.qhelp │ │ │ ├── OverflowDestination.ql │ │ │ ├── OverflowStatic.cpp │ │ │ ├── OverflowStatic.qhelp │ │ │ ├── OverflowStatic.ql │ │ │ ├── ReturnStackAllocatedObject.cpp │ │ │ ├── ReturnStackAllocatedObject.qhelp │ │ │ ├── ReturnStackAllocatedObject.ql │ │ │ ├── ReturnValueIgnored.cpp │ │ │ ├── ReturnValueIgnored.qhelp │ │ │ ├── ReturnValueIgnored.ql │ │ │ ├── SizeCheck.cpp │ │ │ ├── SizeCheck.qhelp │ │ │ ├── SizeCheck.ql │ │ │ ├── SizeCheck2.cpp │ │ │ ├── SizeCheck2.qhelp │ │ │ ├── SizeCheck2.ql │ │ │ ├── Unused.cpp │ │ │ ├── Unused.qhelp │ │ │ ├── Unused.ql │ │ │ ├── UseAfterFree.cpp │ │ │ ├── UseAfterFree.qhelp │ │ │ ├── UseAfterFree.ql │ │ │ ├── aliasAnalysisWarning.inc.qhelp │ │ │ ├── callGraphWarning.inc.qhelp │ │ │ ├── dataFlowWarning.inc.qhelp │ │ │ └── pointsToWarning.inc.qhelp │ │ ├── DefaultOptions.qll │ │ ├── Diagnostics │ │ │ ├── ExtractionErrors.ql │ │ │ ├── ExtractionErrors.qll │ │ │ ├── FailedExtractorInvocations.ql │ │ │ └── SuccessfullyExtractedFiles.ql │ │ ├── Documentation │ │ │ ├── CaptionedComments.qll │ │ │ ├── CommentedOutCode.qhelp │ │ │ ├── CommentedOutCode.ql │ │ │ ├── CommentedOutCode.qll │ │ │ ├── CommentedOutCodeQuery.inc.qhelp │ │ │ ├── DocumentApi.qhelp │ │ │ ├── DocumentApi.ql │ │ │ ├── FixmeComments.cpp │ │ │ ├── FixmeComments.qhelp │ │ │ ├── FixmeComments.ql │ │ │ ├── TodoComments.cpp │ │ │ ├── TodoComments.qhelp │ │ │ ├── TodoComments.ql │ │ │ ├── UncommentedFunction.qhelp │ │ │ └── UncommentedFunction.ql │ │ ├── Header Cleanup │ │ │ ├── Cleanup-DuplicateIncludeGuard.cpp │ │ │ ├── Cleanup-DuplicateIncludeGuard.qhelp │ │ │ ├── Cleanup-DuplicateIncludeGuard.ql │ │ │ └── Cleanup-DuplicateIncludeGuard2.cpp │ │ ├── IDEContextual.qll │ │ ├── JPL_C │ │ │ ├── LOC-2 │ │ │ │ ├── Rule 03 │ │ │ │ │ ├── ExitNonterminatingLoop.ql │ │ │ │ │ └── LoopBounds.ql │ │ │ │ ├── Rule 04 │ │ │ │ │ └── Recursion.ql │ │ │ │ ├── Rule 05 │ │ │ │ │ └── HeapMemory.ql │ │ │ │ ├── Rule 07 │ │ │ │ │ └── ThreadSafety.ql │ │ │ │ ├── Rule 09 │ │ │ │ │ ├── AvoidNestedSemaphores.ql │ │ │ │ │ ├── AvoidSemaphores.ql │ │ │ │ │ ├── OutOfOrderLocks.ql │ │ │ │ │ ├── ReleaseLocksWhenAcquired.ql │ │ │ │ │ └── Semaphores.qll │ │ │ │ ├── Rule 11 │ │ │ │ │ ├── SimpleControlFlowGoto.ql │ │ │ │ │ └── SimpleControlFlowJmp.ql │ │ │ │ └── Rule 12 │ │ │ │ │ └── EnumInitialization.ql │ │ │ ├── LOC-3 │ │ │ │ ├── Rule 13 │ │ │ │ │ ├── ExternDeclsInHeader.ql │ │ │ │ │ ├── LimitedScopeFile.ql │ │ │ │ │ ├── LimitedScopeFunction.ql │ │ │ │ │ └── LimitedScopeLocalHidesGlobal.ql │ │ │ │ ├── Rule 14 │ │ │ │ │ └── CheckingReturnValues.ql │ │ │ │ ├── Rule 15 │ │ │ │ │ └── CheckingParameterValues.ql │ │ │ │ ├── Rule 16 │ │ │ │ │ ├── UseOfAssertionsConstant.ql │ │ │ │ │ ├── UseOfAssertionsDensity.ql │ │ │ │ │ ├── UseOfAssertionsNonBoolean.ql │ │ │ │ │ └── UseOfAssertionsSideEffect.ql │ │ │ │ ├── Rule 17 │ │ │ │ │ └── BasicIntTypes.ql │ │ │ │ ├── Rule 18 │ │ │ │ │ └── CompoundExpressions.ql │ │ │ │ └── Rule 19 │ │ │ │ │ └── NoBooleanSideEffects.ql │ │ │ ├── LOC-4 │ │ │ │ ├── Rule 20 │ │ │ │ │ ├── PreprocessorUse.ql │ │ │ │ │ ├── PreprocessorUseIfdef.ql │ │ │ │ │ ├── PreprocessorUsePartial.ql │ │ │ │ │ └── PreprocessorUseUndisciplined.ql │ │ │ │ ├── Rule 21 │ │ │ │ │ └── MacroInBlock.ql │ │ │ │ ├── Rule 22 │ │ │ │ │ └── UseOfUndef.ql │ │ │ │ ├── Rule 23 │ │ │ │ │ └── MismatchedIfdefs.ql │ │ │ │ ├── Rule 24 │ │ │ │ │ ├── MultipleStmtsPerLine.ql │ │ │ │ │ └── MultipleVarDeclsPerLine.ql │ │ │ │ ├── Rule 25 │ │ │ │ │ └── FunctionSizeLimits.ql │ │ │ │ ├── Rule 26 │ │ │ │ │ └── DeclarationPointerNesting.ql │ │ │ │ ├── Rule 27 │ │ │ │ │ └── PointerDereferenceInStmt.ql │ │ │ │ ├── Rule 28 │ │ │ │ │ ├── HiddenPointerDereferenceMacro.ql │ │ │ │ │ └── HiddenPointerIndirectionTypedef.ql │ │ │ │ ├── Rule 29 │ │ │ │ │ └── NonConstFunctionPointer.ql │ │ │ │ ├── Rule 30 │ │ │ │ │ └── FunctionPointerConversions.ql │ │ │ │ └── Rule 31 │ │ │ │ │ └── IncludesFirst.ql │ │ │ └── Tasks.qll │ │ ├── Likely Bugs │ │ │ ├── AmbiguouslySignedBitField.cpp │ │ │ ├── AmbiguouslySignedBitField.qhelp │ │ │ ├── AmbiguouslySignedBitField.ql │ │ │ ├── Arithmetic │ │ │ │ ├── BadAdditionOverflowCheck.qhelp │ │ │ │ ├── BadAdditionOverflowCheck.ql │ │ │ │ ├── BadAdditionOverflowCheck.qll │ │ │ │ ├── BadAdditionOverflowCheckExample1.cpp │ │ │ │ ├── BadAdditionOverflowCheckExample2.cpp │ │ │ │ ├── BadCheckOdd.qhelp │ │ │ │ ├── BadCheckOdd.ql │ │ │ │ ├── BitwiseSignCheck.qhelp │ │ │ │ ├── BitwiseSignCheck.ql │ │ │ │ ├── ComparisonPrecedence.cpp │ │ │ │ ├── ComparisonPrecedence.qhelp │ │ │ │ ├── ComparisonPrecedence.ql │ │ │ │ ├── ComparisonWithCancelingSubExpr.qhelp │ │ │ │ ├── ComparisonWithCancelingSubExpr.ql │ │ │ │ ├── ComparisonWithCancelingSubExprExample.cpp │ │ │ │ ├── FloatComparison.cpp │ │ │ │ ├── FloatComparison.qhelp │ │ │ │ ├── FloatComparison.ql │ │ │ │ ├── IntMultToLong.cpp │ │ │ │ ├── IntMultToLong.qhelp │ │ │ │ ├── IntMultToLong.ql │ │ │ │ ├── PointlessComparison.cpp │ │ │ │ ├── PointlessComparison.qhelp │ │ │ │ ├── PointlessComparison.ql │ │ │ │ ├── PointlessSelfComparison.qhelp │ │ │ │ ├── PointlessSelfComparison.ql │ │ │ │ ├── PointlessSelfComparison.qll │ │ │ │ ├── PointlessSelfComparisonExample.cpp │ │ │ │ ├── SignedOverflowCheck-bad1.cpp │ │ │ │ ├── SignedOverflowCheck-bad2.cpp │ │ │ │ ├── SignedOverflowCheck-good1.cpp │ │ │ │ ├── SignedOverflowCheck-good2.cpp │ │ │ │ ├── SignedOverflowCheck.qhelp │ │ │ │ ├── SignedOverflowCheck.ql │ │ │ │ ├── UnsignedGEZero.cpp │ │ │ │ ├── UnsignedGEZero.qhelp │ │ │ │ ├── UnsignedGEZero.ql │ │ │ │ └── UnsignedGEZero.qll │ │ │ ├── ContinueInFalseLoop.qhelp │ │ │ ├── ContinueInFalseLoop.ql │ │ │ ├── Conversion │ │ │ │ ├── ArrayArgSizeMismatch.cpp │ │ │ │ ├── ArrayArgSizeMismatch.qhelp │ │ │ │ ├── ArrayArgSizeMismatch.ql │ │ │ │ ├── CastArrayPointerArithmetic.cpp │ │ │ │ ├── CastArrayPointerArithmetic.qhelp │ │ │ │ ├── CastArrayPointerArithmetic.ql │ │ │ │ ├── ConversionChangesSign.cpp │ │ │ │ ├── ConversionChangesSign.qhelp │ │ │ │ ├── ConversionChangesSign.ql │ │ │ │ ├── ImplicitDowncastFromBitfield.c │ │ │ │ ├── ImplicitDowncastFromBitfield.qhelp │ │ │ │ ├── ImplicitDowncastFromBitfield.ql │ │ │ │ ├── LossyFunctionResultCast.cpp │ │ │ │ ├── LossyFunctionResultCast.qhelp │ │ │ │ ├── LossyFunctionResultCast.ql │ │ │ │ ├── LossyPointerCast.cpp │ │ │ │ ├── LossyPointerCast.qhelp │ │ │ │ ├── LossyPointerCast.ql │ │ │ │ ├── NonzeroValueCastToPointer.cpp │ │ │ │ ├── NonzeroValueCastToPointer.qhelp │ │ │ │ └── NonzeroValueCastToPointer.ql │ │ │ ├── Format │ │ │ │ ├── NonConstantFormat-1-bad.c │ │ │ │ ├── NonConstantFormat-1-good.c │ │ │ │ ├── NonConstantFormat-2-bad.c │ │ │ │ ├── NonConstantFormat-2-good.c │ │ │ │ ├── NonConstantFormat-2-ok.c │ │ │ │ ├── NonConstantFormat.qhelp │ │ │ │ ├── NonConstantFormat.ql │ │ │ │ ├── SnprintfOverflow.qhelp │ │ │ │ ├── SnprintfOverflow.ql │ │ │ │ ├── SnprintfOverflowBad.cpp │ │ │ │ ├── SnprintfOverflowGood.cpp │ │ │ │ ├── TooManyFormatArguments.cpp │ │ │ │ ├── TooManyFormatArguments.qhelp │ │ │ │ ├── TooManyFormatArguments.ql │ │ │ │ ├── WrongNumberOfFormatArguments.cpp │ │ │ │ ├── WrongNumberOfFormatArguments.qhelp │ │ │ │ ├── WrongNumberOfFormatArguments.ql │ │ │ │ ├── WrongTypeFormatArguments.cpp │ │ │ │ ├── WrongTypeFormatArguments.qhelp │ │ │ │ └── WrongTypeFormatArguments.ql │ │ │ ├── InconsistentCallOnResult.qhelp │ │ │ ├── InconsistentCallOnResult.ql │ │ │ ├── InconsistentCheckReturnNull.cpp │ │ │ ├── InconsistentCheckReturnNull.qhelp │ │ │ ├── InconsistentCheckReturnNull.ql │ │ │ ├── JapaneseEra │ │ │ │ ├── ConstructorOrMethodWithExactEraDate.qhelp │ │ │ │ ├── ConstructorOrMethodWithExactEraDate.ql │ │ │ │ ├── StructWithExactEraDate.qhelp │ │ │ │ └── StructWithExactEraDate.ql │ │ │ ├── Leap Year │ │ │ │ ├── Adding365DaysPerYear.qhelp │ │ │ │ ├── Adding365DaysPerYear.ql │ │ │ │ ├── LeapYear.inc.qhelp │ │ │ │ ├── LeapYear.qll │ │ │ │ ├── UncheckedLeapYearAfterYearModification.qhelp │ │ │ │ ├── UncheckedLeapYearAfterYearModification.ql │ │ │ │ ├── UncheckedLeapYearAfterYearModificationBad.c │ │ │ │ ├── UncheckedLeapYearAfterYearModificationGood.c │ │ │ │ ├── UncheckedReturnValueForTimeFunctions.qhelp │ │ │ │ ├── UncheckedReturnValueForTimeFunctions.ql │ │ │ │ ├── UnsafeArrayForDaysOfYear.qhelp │ │ │ │ ├── UnsafeArrayForDaysOfYear.ql │ │ │ │ ├── UnsafeArrayForDaysOfYearBad.c │ │ │ │ └── UnsafeArrayForDaysOfYearGood.c │ │ │ ├── Likely Typos │ │ │ │ ├── AssignWhereCompareMeant.cpp │ │ │ │ ├── AssignWhereCompareMeant.qhelp │ │ │ │ ├── AssignWhereCompareMeant.ql │ │ │ │ ├── BoolValueInBitOp.cpp │ │ │ │ ├── BoolValueInBitOp.qhelp │ │ │ │ ├── BoolValueInBitOp.ql │ │ │ │ ├── CompareWhereAssignMeant.cpp │ │ │ │ ├── CompareWhereAssignMeant.qhelp │ │ │ │ ├── CompareWhereAssignMeant.ql │ │ │ │ ├── DubiousNullCheck.qhelp │ │ │ │ ├── DubiousNullCheck.ql │ │ │ │ ├── ExprHasNoEffect.cpp │ │ │ │ ├── ExprHasNoEffect.qhelp │ │ │ │ ├── ExprHasNoEffect.ql │ │ │ │ ├── FutileConditional.cpp │ │ │ │ ├── FutileConditional.qhelp │ │ │ │ ├── FutileConditional.ql │ │ │ │ ├── IncorrectNotOperatorUsage.cpp │ │ │ │ ├── IncorrectNotOperatorUsage.qhelp │ │ │ │ ├── IncorrectNotOperatorUsage.ql │ │ │ │ ├── LogicalExprCouldBeSimplified.cpp │ │ │ │ ├── LogicalExprCouldBeSimplified.qhelp │ │ │ │ ├── LogicalExprCouldBeSimplified.ql │ │ │ │ ├── MissingEnumCaseInSwitch.cpp │ │ │ │ ├── MissingEnumCaseInSwitch.qhelp │ │ │ │ ├── MissingEnumCaseInSwitch.ql │ │ │ │ ├── ShortCircuitBitMask.cpp │ │ │ │ ├── ShortCircuitBitMask.qhelp │ │ │ │ ├── ShortCircuitBitMask.ql │ │ │ │ ├── UsingStrcpyAsBoolean.cpp │ │ │ │ ├── UsingStrcpyAsBoolean.qhelp │ │ │ │ ├── UsingStrcpyAsBoolean.ql │ │ │ │ ├── inconsistentLoopDirection.c │ │ │ │ ├── inconsistentLoopDirection.qhelp │ │ │ │ └── inconsistentLoopDirection.ql │ │ │ ├── Memory Management │ │ │ │ ├── AllocaInLoop.qhelp │ │ │ │ ├── AllocaInLoop.ql │ │ │ │ ├── AllocaInLoopBad.cpp │ │ │ │ ├── AllocaInLoopGood.cpp │ │ │ │ ├── Buffer.qll │ │ │ │ ├── ImproperNullTermination.qhelp │ │ │ │ ├── ImproperNullTermination.ql │ │ │ │ ├── ImproperNullTerminationBad.cpp │ │ │ │ ├── ImproperNullTerminationGood.cpp │ │ │ │ ├── NtohlArrayNoBound-bad.cpp │ │ │ │ ├── NtohlArrayNoBound-good.cpp │ │ │ │ ├── NtohlArrayNoBound.qhelp │ │ │ │ ├── NtohlArrayNoBound.ql │ │ │ │ ├── NtohlArrayNoBound.qll │ │ │ │ ├── Padding │ │ │ │ │ ├── More64BitWaste.ql │ │ │ │ │ ├── NonPortablePrintf.ql │ │ │ │ │ └── Suboptimal64BitType.ql │ │ │ │ ├── PointerOverflow-bad.cpp │ │ │ │ ├── PointerOverflow-good.cpp │ │ │ │ ├── PointerOverflow.qhelp │ │ │ │ ├── PointerOverflow.ql │ │ │ │ ├── PotentialBufferOverflow.cpp │ │ │ │ ├── PotentialBufferOverflow.qhelp │ │ │ │ ├── PotentialBufferOverflow.ql │ │ │ │ ├── ReturnCstrOfLocalStdString.qhelp │ │ │ │ ├── ReturnCstrOfLocalStdString.ql │ │ │ │ ├── ReturnCstrOfLocalStdStringBad.cpp │ │ │ │ ├── ReturnCstrOfLocalStdStringGood.cpp │ │ │ │ ├── ReturnStackAllocatedMemory.cpp │ │ │ │ ├── ReturnStackAllocatedMemory.qhelp │ │ │ │ ├── ReturnStackAllocatedMemory.ql │ │ │ │ ├── StackAddressEscapes.cpp │ │ │ │ ├── StackAddressEscapes.qhelp │ │ │ │ ├── StackAddressEscapes.ql │ │ │ │ ├── StrncpyFlippedArgs.cpp │ │ │ │ ├── StrncpyFlippedArgs.qhelp │ │ │ │ ├── StrncpyFlippedArgs.ql │ │ │ │ ├── SuspiciousCallToMemset.cpp │ │ │ │ ├── SuspiciousCallToMemset.qhelp │ │ │ │ ├── SuspiciousCallToMemset.ql │ │ │ │ ├── SuspiciousCallToStrncat.cpp │ │ │ │ ├── SuspiciousCallToStrncat.qhelp │ │ │ │ ├── SuspiciousCallToStrncat.ql │ │ │ │ ├── SuspiciousSizeof.cpp │ │ │ │ ├── SuspiciousSizeof.qhelp │ │ │ │ ├── SuspiciousSizeof.ql │ │ │ │ ├── UninitializedLocal.cpp │ │ │ │ ├── UninitializedLocal.qhelp │ │ │ │ ├── UninitializedLocal.ql │ │ │ │ ├── UnsafeUseOfStrcat.cpp │ │ │ │ ├── UnsafeUseOfStrcat.qhelp │ │ │ │ └── UnsafeUseOfStrcat.ql │ │ │ ├── NestedLoopSameVar.cpp │ │ │ ├── NestedLoopSameVar.qhelp │ │ │ ├── NestedLoopSameVar.ql │ │ │ ├── NestedLoopSameVar.qll │ │ │ ├── OO │ │ │ │ ├── IncorrectConstructorDelegation.qhelp │ │ │ │ ├── IncorrectConstructorDelegation.ql │ │ │ │ ├── NonVirtualDestructor.cpp │ │ │ │ ├── NonVirtualDestructor.qhelp │ │ │ │ ├── NonVirtualDestructor.ql │ │ │ │ ├── NonVirtualDestructorInBaseClass.cpp │ │ │ │ ├── NonVirtualDestructorInBaseClass.qhelp │ │ │ │ ├── NonVirtualDestructorInBaseClass.ql │ │ │ │ ├── SelfAssignmentCheck.cpp │ │ │ │ ├── SelfAssignmentCheck.qhelp │ │ │ │ ├── SelfAssignmentCheck.ql │ │ │ │ ├── ThrowInDestructor.cpp │ │ │ │ ├── ThrowInDestructor.qhelp │ │ │ │ ├── ThrowInDestructor.ql │ │ │ │ ├── UnsafeUseOfThis.cpp │ │ │ │ ├── UnsafeUseOfThis.qhelp │ │ │ │ ├── UnsafeUseOfThis.ql │ │ │ │ ├── VirtualCallInStructor.cpp │ │ │ │ ├── VirtualCallInStructor.qhelp │ │ │ │ └── VirtualCallInStructor.ql │ │ │ ├── Protocols │ │ │ │ ├── TlsSettingsMisconfiguration.qhelp │ │ │ │ ├── TlsSettingsMisconfiguration.ql │ │ │ │ ├── TlsSettingsMisconfigurationBad.cpp │ │ │ │ ├── TlsSettingsMisconfigurationGood.cpp │ │ │ │ ├── UseOfDeprecatedHardcodedProtocol.qhelp │ │ │ │ ├── UseOfDeprecatedHardcodedProtocol.ql │ │ │ │ ├── UseOfDeprecatedHardcodedProtocolBad.cpp │ │ │ │ └── UseOfDeprecatedHardcodedProtocolGood.cpp │ │ │ ├── RedundantNullCheckSimple.cpp │ │ │ ├── RedundantNullCheckSimple.qhelp │ │ │ ├── RedundantNullCheckSimple.ql │ │ │ ├── ReturnConstType.cpp │ │ │ ├── ReturnConstType.qhelp │ │ │ ├── ReturnConstType.ql │ │ │ ├── ReturnConstTypeCommon.qll │ │ │ ├── ReturnConstTypeMember.cpp │ │ │ ├── ReturnConstTypeMember.qhelp │ │ │ ├── ReturnConstTypeMember.ql │ │ │ ├── ShortLoopVarName.cpp │ │ │ ├── ShortLoopVarName.qhelp │ │ │ ├── ShortLoopVarName.ql │ │ │ ├── Underspecified Functions │ │ │ │ ├── ImplicitFunctionDeclaration.c │ │ │ │ ├── ImplicitFunctionDeclaration.qhelp │ │ │ │ ├── ImplicitFunctionDeclaration.ql │ │ │ │ ├── MistypedFunctionArguments.c │ │ │ │ ├── MistypedFunctionArguments.qhelp │ │ │ │ ├── MistypedFunctionArguments.ql │ │ │ │ ├── MistypedFunctionArguments.qll │ │ │ │ ├── TooFewArguments.c │ │ │ │ ├── TooFewArguments.qhelp │ │ │ │ ├── TooFewArguments.ql │ │ │ │ ├── TooFewArguments.qll │ │ │ │ ├── TooManyArguments.c │ │ │ │ ├── TooManyArguments.qhelp │ │ │ │ ├── TooManyArguments.ql │ │ │ │ └── TooManyArguments.qll │ │ │ ├── UseInOwnInitializer.cpp │ │ │ ├── UseInOwnInitializer.qhelp │ │ │ └── UseInOwnInitializer.ql │ │ ├── Metrics │ │ │ ├── Classes │ │ │ │ ├── CAfferentCoupling.qhelp │ │ │ │ ├── CAfferentCoupling.ql │ │ │ │ ├── CEfferentCoupling.qhelp │ │ │ │ ├── CEfferentCoupling.ql │ │ │ │ ├── CHalsteadBugs.ql │ │ │ │ ├── CHalsteadDifficulty.ql │ │ │ │ ├── CHalsteadEffort.ql │ │ │ │ ├── CHalsteadLength.ql │ │ │ │ ├── CHalsteadVocabulary.ql │ │ │ │ ├── CHalsteadVolume.ql │ │ │ │ ├── CInheritanceDepth.qhelp │ │ │ │ ├── CInheritanceDepth.ql │ │ │ │ ├── CLackOfCohesionCK.qhelp │ │ │ │ ├── CLackOfCohesionCK.ql │ │ │ │ ├── CLackOfCohesionHS.ql │ │ │ │ ├── CLinesOfCode.qhelp │ │ │ │ ├── CLinesOfCode.ql │ │ │ │ ├── CNumberOfFields.qhelp │ │ │ │ ├── CNumberOfFields.ql │ │ │ │ ├── CNumberOfFunctions.qhelp │ │ │ │ ├── CNumberOfFunctions.ql │ │ │ │ ├── CNumberOfStatements.ql │ │ │ │ ├── CPercentageOfComplexCode.qhelp │ │ │ │ ├── CPercentageOfComplexCode.ql │ │ │ │ ├── CResponse.qhelp │ │ │ │ ├── CResponse.ql │ │ │ │ ├── CSizeOfAPI.qhelp │ │ │ │ ├── CSizeOfAPI.ql │ │ │ │ ├── CSpecialisation.qhelp │ │ │ │ └── CSpecialisation.ql │ │ │ ├── Dependencies │ │ │ │ ├── ExternalDependencies.ql │ │ │ │ ├── ExternalDependencies.qll │ │ │ │ └── ExternalDependenciesSourceLinks.ql │ │ │ ├── External │ │ │ │ ├── FileCompilationDisplayStrings.ql │ │ │ │ └── FileCompilationSourceLinks.ql │ │ │ ├── Files │ │ │ │ ├── AutogeneratedLOC.ql │ │ │ │ ├── CommentedOutCodeMetricOverview.inc.qhelp │ │ │ │ ├── CommentedOutCodeReferences.inc.qhelp │ │ │ │ ├── ConditionalSegmentConditions.ql │ │ │ │ ├── ConditionalSegmentLines.ql │ │ │ │ ├── DuplicationProblems.inc.qhelp │ │ │ │ ├── FAfferentCoupling.qhelp │ │ │ │ ├── FAfferentCoupling.ql │ │ │ │ ├── FCommentRatio.qhelp │ │ │ │ ├── FCommentRatio.ql │ │ │ │ ├── FCyclomaticComplexity.cpp │ │ │ │ ├── FCyclomaticComplexity.qhelp │ │ │ │ ├── FCyclomaticComplexity.ql │ │ │ │ ├── FCyclomaticComplexity_ControlFlow.gv │ │ │ │ ├── FCyclomaticComplexity_ControlFlow.png │ │ │ │ ├── FDirectIncludes.qhelp │ │ │ │ ├── FDirectIncludes.ql │ │ │ │ ├── FEfferentCoupling.qhelp │ │ │ │ ├── FEfferentCoupling.ql │ │ │ │ ├── FHalsteadBugs.ql │ │ │ │ ├── FHalsteadDifficulty.ql │ │ │ │ ├── FHalsteadEffort.ql │ │ │ │ ├── FHalsteadLength.ql │ │ │ │ ├── FHalsteadVocabulary.ql │ │ │ │ ├── FHalsteadVolume.ql │ │ │ │ ├── FLines.ql │ │ │ │ ├── FLinesOfCode.qhelp │ │ │ │ ├── FLinesOfCode.ql │ │ │ │ ├── FLinesOfCommentedOutCode.qhelp │ │ │ │ ├── FLinesOfCommentedOutCode.ql │ │ │ │ ├── FLinesOfComments.qhelp │ │ │ │ ├── FLinesOfComments.ql │ │ │ │ ├── FLinesOfDuplicatedCode.qhelp │ │ │ │ ├── FLinesOfDuplicatedCode.ql │ │ │ │ ├── FLinesOfDuplicatedCodeCommon.inc.qhelp │ │ │ │ ├── FMacroRatio.cpp │ │ │ │ ├── FMacroRatio.qhelp │ │ │ │ ├── FMacroRatio.ql │ │ │ │ ├── FNumberOfClasses.ql │ │ │ │ ├── FNumberOfTests.qhelp │ │ │ │ ├── FNumberOfTests.ql │ │ │ │ ├── FTimeInFrontend.qhelp │ │ │ │ ├── FTimeInFrontend.ql │ │ │ │ ├── FTodoComments.qhelp │ │ │ │ ├── FTodoComments.ql │ │ │ │ ├── FTransitiveIncludes.qhelp │ │ │ │ ├── FTransitiveIncludes.ql │ │ │ │ ├── FTransitiveSourceIncludes.qhelp │ │ │ │ ├── FTransitiveSourceIncludes.ql │ │ │ │ ├── FunctionLength.qhelp │ │ │ │ ├── FunctionLength.ql │ │ │ │ ├── NumberOfFunctions.qhelp │ │ │ │ ├── NumberOfFunctions.ql │ │ │ │ ├── NumberOfGlobals.qhelp │ │ │ │ ├── NumberOfGlobals.ql │ │ │ │ ├── NumberOfParameters.qhelp │ │ │ │ ├── NumberOfParameters.ql │ │ │ │ ├── NumberOfPublicFunctions.qhelp │ │ │ │ ├── NumberOfPublicFunctions.ql │ │ │ │ ├── NumberOfPublicGlobals.qhelp │ │ │ │ └── NumberOfPublicGlobals.ql │ │ │ ├── Functions │ │ │ │ ├── FunCyclomaticComplexity.qhelp │ │ │ │ ├── FunCyclomaticComplexity.ql │ │ │ │ ├── FunIterationNestingDepth.ql │ │ │ │ ├── FunLinesOfCode.qhelp │ │ │ │ ├── FunLinesOfCode.ql │ │ │ │ ├── FunLinesOfComments.qhelp │ │ │ │ ├── FunLinesOfComments.ql │ │ │ │ ├── FunNumberOfCalls.qhelp │ │ │ │ ├── FunNumberOfCalls.ql │ │ │ │ ├── FunNumberOfParameters.qhelp │ │ │ │ ├── FunNumberOfParameters.ql │ │ │ │ ├── FunNumberOfStatements.qhelp │ │ │ │ ├── FunNumberOfStatements.ql │ │ │ │ ├── FunPercentageOfComments.qhelp │ │ │ │ ├── FunPercentageOfComments.ql │ │ │ │ ├── StatementNestingDepth.qhelp │ │ │ │ └── StatementNestingDepth.ql │ │ │ ├── History │ │ │ │ ├── HChurn.qhelp │ │ │ │ ├── HLinesAdded.qhelp │ │ │ │ ├── HLinesDeleted.qhelp │ │ │ │ ├── HNumberOfAuthors.qhelp │ │ │ │ ├── HNumberOfChanges.qhelp │ │ │ │ ├── HNumberOfCoCommits.qhelp │ │ │ │ ├── HNumberOfReCommits.qhelp │ │ │ │ └── HNumberOfRecentChanges.qhelp │ │ │ ├── Internal │ │ │ │ ├── CallableDisplayStrings.ql │ │ │ │ ├── CallableExtents.ql │ │ │ │ ├── CallableSourceLinks.ql │ │ │ │ ├── ReftypeDisplayStrings.ql │ │ │ │ └── ReftypeSourceLinks.ql │ │ │ └── Namespaces │ │ │ │ ├── AbstractNamespaces.qhelp │ │ │ │ ├── AbstractNamespaces.ql │ │ │ │ ├── ConcreteNamespaces.qhelp │ │ │ │ ├── ConcreteNamespaces.ql │ │ │ │ ├── HighAfferentCouplingNamespaces.qhelp │ │ │ │ ├── HighAfferentCouplingNamespaces.ql │ │ │ │ ├── HighDistanceFromMainLineNamespaces.qhelp │ │ │ │ ├── HighDistanceFromMainLineNamespaces.ql │ │ │ │ ├── HighEfferentCouplingNamespaces.ql │ │ │ │ ├── StableNamespaces.qhelp │ │ │ │ ├── StableNamespaces.ql │ │ │ │ ├── UnstableNamespaces.qhelp │ │ │ │ └── UnstableNamespaces.ql │ │ ├── Microsoft │ │ │ ├── CallWithNullSAL.ql │ │ │ ├── IgnoreReturnValueSAL.ql │ │ │ ├── InconsistentSAL.ql │ │ │ └── SAL.qll │ │ ├── Options.qll │ │ ├── PointsTo │ │ │ ├── Debug.ql │ │ │ ├── PreparedStagedPointsTo.ql │ │ │ ├── Stats.ql │ │ │ └── TaintedFormatStrings.ql │ │ ├── Power of 10 │ │ │ ├── Rule 1 │ │ │ │ ├── UseOfGoto.c │ │ │ │ ├── UseOfGoto.qhelp │ │ │ │ ├── UseOfGoto.ql │ │ │ │ ├── UseOfJmp.ql │ │ │ │ └── UseOfRecursion.ql │ │ │ ├── Rule 2 │ │ │ │ ├── BoundedLoopIterations.ql │ │ │ │ └── ExitPermanentLoop.ql │ │ │ ├── Rule 3 │ │ │ │ └── DynamicAllocAfterInit.ql │ │ │ ├── Rule 4 │ │ │ │ ├── FunctionTooLong.ql │ │ │ │ └── OneStmtPerLine.ql │ │ │ ├── Rule 5 │ │ │ │ ├── AssertionDensity.ql │ │ │ │ ├── AssertionSideEffect.ql │ │ │ │ ├── ConstantAssertion.ql │ │ │ │ └── NonBooleanAssertion.ql │ │ │ ├── Rule 6 │ │ │ │ ├── GlobalCouldBeStatic.ql │ │ │ │ └── VariableScopeTooLarge.ql │ │ │ ├── Rule 7 │ │ │ │ ├── CheckArguments.ql │ │ │ │ └── CheckReturnValues.ql │ │ │ ├── Rule 8 │ │ │ │ ├── AvoidConditionalCompilation.ql │ │ │ │ ├── PartialMacro.ql │ │ │ │ ├── RestrictPreprocessor.ql │ │ │ │ └── UndisciplinedMacro.ql │ │ │ └── Rule 9 │ │ │ │ ├── FunctionPointer.ql │ │ │ │ ├── HiddenPointerIndirection.ql │ │ │ │ └── PointerNesting.ql │ │ ├── Security │ │ │ └── CWE │ │ │ │ ├── CWE-014 │ │ │ │ ├── MemsetMayBeDeleted-bad.c │ │ │ │ ├── MemsetMayBeDeleted-good.c │ │ │ │ ├── MemsetMayBeDeleted.qhelp │ │ │ │ └── MemsetMayBeDeleted.ql │ │ │ │ ├── CWE-020 │ │ │ │ ├── CountUntrustedDataToExternalAPI.qhelp │ │ │ │ ├── CountUntrustedDataToExternalAPI.ql │ │ │ │ ├── ExternalAPISinkExample.cpp │ │ │ │ ├── ExternalAPITaintStepExample.cpp │ │ │ │ ├── ExternalAPIs.qll │ │ │ │ ├── ExternalAPIsSpecific.qll │ │ │ │ ├── IRCountUntrustedDataToExternalAPI.qhelp │ │ │ │ ├── IRCountUntrustedDataToExternalAPI.ql │ │ │ │ ├── IRUntrustedDataToExternalAPI.qhelp │ │ │ │ ├── IRUntrustedDataToExternalAPI.ql │ │ │ │ ├── SafeExternalAPIFunction.qll │ │ │ │ ├── UntrustedDataToExternalAPI.qhelp │ │ │ │ ├── UntrustedDataToExternalAPI.ql │ │ │ │ └── ir │ │ │ │ │ ├── ExternalAPIs.qll │ │ │ │ │ ├── ExternalAPIsSpecific.qll │ │ │ │ │ └── SafeExternalAPIFunction.qll │ │ │ │ ├── CWE-022 │ │ │ │ ├── TaintedPath.c │ │ │ │ ├── TaintedPath.qhelp │ │ │ │ └── TaintedPath.ql │ │ │ │ ├── CWE-078 │ │ │ │ ├── ExecTainted.c │ │ │ │ ├── ExecTainted.qhelp │ │ │ │ └── ExecTainted.ql │ │ │ │ ├── CWE-079 │ │ │ │ ├── CgiXss.c │ │ │ │ ├── CgiXss.qhelp │ │ │ │ └── CgiXss.ql │ │ │ │ ├── CWE-089 │ │ │ │ ├── SqlTainted.c │ │ │ │ ├── SqlTainted.qhelp │ │ │ │ └── SqlTainted.ql │ │ │ │ ├── CWE-114 │ │ │ │ ├── UncontrolledProcessOperation.c │ │ │ │ ├── UncontrolledProcessOperation.qhelp │ │ │ │ └── UncontrolledProcessOperation.ql │ │ │ │ ├── CWE-119 │ │ │ │ ├── OverflowBuffer.c │ │ │ │ ├── OverflowBuffer.qhelp │ │ │ │ └── OverflowBuffer.ql │ │ │ │ ├── CWE-120 │ │ │ │ ├── BadlyBoundedWrite.c │ │ │ │ ├── BadlyBoundedWrite.qhelp │ │ │ │ ├── BadlyBoundedWrite.ql │ │ │ │ ├── OverrunWrite.c │ │ │ │ ├── OverrunWrite.qhelp │ │ │ │ ├── OverrunWrite.ql │ │ │ │ ├── OverrunWriteFloat.c │ │ │ │ ├── OverrunWriteFloat.qhelp │ │ │ │ ├── OverrunWriteFloat.ql │ │ │ │ ├── UnboundedWrite.c │ │ │ │ ├── UnboundedWrite.qhelp │ │ │ │ └── UnboundedWrite.ql │ │ │ │ ├── CWE-121 │ │ │ │ ├── UnterminatedVarargsCall.cpp │ │ │ │ ├── UnterminatedVarargsCall.qhelp │ │ │ │ └── UnterminatedVarargsCall.ql │ │ │ │ ├── CWE-129 │ │ │ │ ├── ImproperArrayIndexValidation.qhelp │ │ │ │ ├── ImproperArrayIndexValidation.ql │ │ │ │ ├── ImproperArrayIndexValidationBad.c │ │ │ │ └── ImproperArrayIndexValidationGood.c │ │ │ │ ├── CWE-131 │ │ │ │ ├── NoSpaceForZeroTerminator.c │ │ │ │ ├── NoSpaceForZeroTerminator.qhelp │ │ │ │ └── NoSpaceForZeroTerminator.ql │ │ │ │ ├── CWE-134 │ │ │ │ ├── UncontrolledFormatString.c │ │ │ │ ├── UncontrolledFormatString.qhelp │ │ │ │ ├── UncontrolledFormatString.ql │ │ │ │ ├── UncontrolledFormatStringThroughGlobalVar.c │ │ │ │ ├── UncontrolledFormatStringThroughGlobalVar.qhelp │ │ │ │ └── UncontrolledFormatStringThroughGlobalVar.ql │ │ │ │ ├── CWE-170 │ │ │ │ ├── ImproperNullTerminationTainted.qhelp │ │ │ │ ├── ImproperNullTerminationTainted.ql │ │ │ │ ├── ImproperNullTerminationTaintedBad.cpp │ │ │ │ └── ImproperNullTerminationTaintedGood.cpp │ │ │ │ ├── CWE-190 │ │ │ │ ├── ArithmeticTainted.c │ │ │ │ ├── ArithmeticTainted.qhelp │ │ │ │ ├── ArithmeticTainted.ql │ │ │ │ ├── ArithmeticUncontrolled.c │ │ │ │ ├── ArithmeticUncontrolled.qhelp │ │ │ │ ├── ArithmeticUncontrolled.ql │ │ │ │ ├── ArithmeticWithExtremeValues.c │ │ │ │ ├── ArithmeticWithExtremeValues.qhelp │ │ │ │ ├── ArithmeticWithExtremeValues.ql │ │ │ │ ├── ComparisonWithWiderType.c │ │ │ │ ├── ComparisonWithWiderType.qhelp │ │ │ │ ├── ComparisonWithWiderType.ql │ │ │ │ ├── IntegerOverflowTainted.qhelp │ │ │ │ ├── IntegerOverflowTainted.ql │ │ │ │ ├── TaintedAllocationSize.c │ │ │ │ ├── TaintedAllocationSize.qhelp │ │ │ │ └── TaintedAllocationSize.ql │ │ │ │ ├── CWE-191 │ │ │ │ ├── UnsignedDifferenceExpressionComparedZero.c │ │ │ │ ├── UnsignedDifferenceExpressionComparedZero.qhelp │ │ │ │ └── UnsignedDifferenceExpressionComparedZero.ql │ │ │ │ ├── CWE-253 │ │ │ │ ├── HResultBooleanConversion.cpp │ │ │ │ ├── HResultBooleanConversion.qhelp │ │ │ │ └── HResultBooleanConversion.ql │ │ │ │ ├── CWE-290 │ │ │ │ ├── AuthenticationBypass.cpp │ │ │ │ ├── AuthenticationBypass.qhelp │ │ │ │ └── AuthenticationBypass.ql │ │ │ │ ├── CWE-311 │ │ │ │ ├── CleartextBufferWrite.qhelp │ │ │ │ ├── CleartextBufferWrite.ql │ │ │ │ ├── CleartextFileWrite.qhelp │ │ │ │ ├── CleartextFileWrite.ql │ │ │ │ ├── CleartextStorage.c │ │ │ │ └── CleartextStorage.inc.qhelp │ │ │ │ ├── CWE-313 │ │ │ │ ├── CleartextSqliteDatabase.c │ │ │ │ ├── CleartextSqliteDatabase.qhelp │ │ │ │ └── CleartextSqliteDatabase.ql │ │ │ │ ├── CWE-327 │ │ │ │ ├── BrokenCryptoAlgorithm.c │ │ │ │ ├── BrokenCryptoAlgorithm.qhelp │ │ │ │ ├── BrokenCryptoAlgorithm.ql │ │ │ │ ├── OpenSslHeartbleed.c │ │ │ │ ├── OpenSslHeartbleed.qhelp │ │ │ │ └── OpenSslHeartbleed.ql │ │ │ │ ├── CWE-367 │ │ │ │ ├── TOCTOUFilesystemRace.qhelp │ │ │ │ ├── TOCTOUFilesystemRace.ql │ │ │ │ ├── TOCTOUFilesystemRaceBad.c │ │ │ │ └── TOCTOUFilesystemRaceGood.c │ │ │ │ ├── CWE-428 │ │ │ │ ├── UnsafeCreateProcessCall.cpp │ │ │ │ ├── UnsafeCreateProcessCall.qhelp │ │ │ │ └── UnsafeCreateProcessCall.ql │ │ │ │ ├── CWE-457 │ │ │ │ ├── ConditionallyUninitializedVariable.qhelp │ │ │ │ ├── ConditionallyUninitializedVariable.ql │ │ │ │ ├── ConditionallyUninitializedVariableBad.c │ │ │ │ ├── ConditionallyUninitializedVariableGood.c │ │ │ │ ├── InitializationFunctions.qll │ │ │ │ └── UninitializedVariables.qll │ │ │ │ ├── CWE-468 │ │ │ │ ├── IncorrectPointerScaling.cpp │ │ │ │ ├── IncorrectPointerScaling.qhelp │ │ │ │ ├── IncorrectPointerScaling.ql │ │ │ │ ├── IncorrectPointerScalingChar.cpp │ │ │ │ ├── IncorrectPointerScalingChar.qhelp │ │ │ │ ├── IncorrectPointerScalingChar.ql │ │ │ │ ├── IncorrectPointerScalingCommon.qll │ │ │ │ ├── IncorrectPointerScalingVoid.cpp │ │ │ │ ├── IncorrectPointerScalingVoid.qhelp │ │ │ │ ├── IncorrectPointerScalingVoid.ql │ │ │ │ ├── SuspiciousAddWithSizeof.cpp │ │ │ │ ├── SuspiciousAddWithSizeof.qhelp │ │ │ │ └── SuspiciousAddWithSizeof.ql │ │ │ │ ├── CWE-497 │ │ │ │ ├── ExposedSystemData.qhelp │ │ │ │ ├── ExposedSystemData.ql │ │ │ │ ├── ExposedSystemDataCorrect.cpp │ │ │ │ └── ExposedSystemDataIncorrect.cpp │ │ │ │ ├── CWE-676 │ │ │ │ ├── DangerousFunctionOverflow.c │ │ │ │ ├── DangerousFunctionOverflow.qhelp │ │ │ │ ├── DangerousFunctionOverflow.ql │ │ │ │ ├── DangerousUseOfCin.cpp │ │ │ │ ├── DangerousUseOfCin.qhelp │ │ │ │ ├── DangerousUseOfCin.ql │ │ │ │ ├── PotentiallyDangerousFunction.c │ │ │ │ ├── PotentiallyDangerousFunction.qhelp │ │ │ │ └── PotentiallyDangerousFunction.ql │ │ │ │ ├── CWE-704 │ │ │ │ ├── WcharCharConversion.cpp │ │ │ │ ├── WcharCharConversion.qhelp │ │ │ │ └── WcharCharConversion.ql │ │ │ │ ├── CWE-732 │ │ │ │ ├── DoNotCreateWorldWritable.c │ │ │ │ ├── DoNotCreateWorldWritable.qhelp │ │ │ │ ├── DoNotCreateWorldWritable.ql │ │ │ │ ├── FilePermissions.qll │ │ │ │ ├── UnsafeDaclSecurityDescriptor.cpp │ │ │ │ ├── UnsafeDaclSecurityDescriptor.qhelp │ │ │ │ └── UnsafeDaclSecurityDescriptor.ql │ │ │ │ ├── CWE-764 │ │ │ │ ├── LockFlow.qll │ │ │ │ ├── LockOrderCycle.qhelp │ │ │ │ ├── LockOrderCycle.ql │ │ │ │ ├── LockOrderCycleExample.cpp │ │ │ │ ├── TwiceLocked.qhelp │ │ │ │ ├── TwiceLocked.ql │ │ │ │ ├── TwiceLockedBad.cpp │ │ │ │ ├── TwiceLockedGood.cpp │ │ │ │ ├── UnreleasedLock.qhelp │ │ │ │ ├── UnreleasedLock.ql │ │ │ │ ├── UnreleasedLockBad.cpp │ │ │ │ └── UnreleasedLockGood.cpp │ │ │ │ ├── CWE-807 │ │ │ │ ├── TaintedCondition.c │ │ │ │ ├── TaintedCondition.qhelp │ │ │ │ └── TaintedCondition.ql │ │ │ │ └── CWE-835 │ │ │ │ ├── InfiniteLoopBad.c │ │ │ │ ├── InfiniteLoopGood.c │ │ │ │ ├── InfiniteLoopWithUnsatisfiableExitCondition.qhelp │ │ │ │ └── InfiniteLoopWithUnsatisfiableExitCondition.ql │ │ ├── Summary │ │ │ └── LinesOfCode.ql │ │ ├── codeql-suites │ │ │ ├── cpp-code-scanning.qls │ │ │ ├── cpp-lgtm-full.qls │ │ │ ├── cpp-lgtm.qls │ │ │ ├── cpp-security-and-quality.qls │ │ │ ├── cpp-security-extended.qls │ │ │ └── exclude-slow-queries.yml │ │ ├── cpp.qll │ │ ├── default.qll │ │ ├── definitions.ql │ │ ├── definitions.qll │ │ ├── experimental │ │ │ ├── Likely Bugs │ │ │ │ ├── RedundantNullCheckParam.cpp │ │ │ │ ├── RedundantNullCheckParam.qhelp │ │ │ │ └── RedundantNullCheckParam.ql │ │ │ ├── README.md │ │ │ ├── Security │ │ │ │ └── CWE │ │ │ │ │ ├── CWE-020 │ │ │ │ │ ├── LateCheckOfFunctionArgument.c │ │ │ │ │ ├── LateCheckOfFunctionArgument.qhelp │ │ │ │ │ └── LateCheckOfFunctionArgument.ql │ │ │ │ │ ├── CWE-120 │ │ │ │ │ ├── MemoryUnsafeFunctionScan.cpp │ │ │ │ │ ├── MemoryUnsafeFunctionScan.qhelp │ │ │ │ │ └── MemoryUnsafeFunctionScan.ql │ │ │ │ │ ├── CWE-190 │ │ │ │ │ ├── AllocMultiplicationOverflow.cpp │ │ │ │ │ ├── AllocMultiplicationOverflow.qhelp │ │ │ │ │ └── AllocMultiplicationOverflow.ql │ │ │ │ │ ├── CWE-273 │ │ │ │ │ ├── PrivilegeDroppingOutoforder.c │ │ │ │ │ ├── PrivilegeDroppingOutoforder.qhelp │ │ │ │ │ └── PrivilegeDroppingOutoforder.ql │ │ │ │ │ ├── CWE-359 │ │ │ │ │ ├── PrivateCleartextWrite.qhelp │ │ │ │ │ └── PrivateCleartextWrite.ql │ │ │ │ │ ├── CWE-401 │ │ │ │ │ ├── MemoryLeakOnFailedCallToRealloc.c │ │ │ │ │ ├── MemoryLeakOnFailedCallToRealloc.qhelp │ │ │ │ │ └── MemoryLeakOnFailedCallToRealloc.ql │ │ │ │ │ ├── CWE-570 │ │ │ │ │ ├── WrongInDetectingAndHandlingMemoryAllocationErrors.cpp │ │ │ │ │ ├── WrongInDetectingAndHandlingMemoryAllocationErrors.qhelp │ │ │ │ │ └── WrongInDetectingAndHandlingMemoryAllocationErrors.ql │ │ │ │ │ └── CWE-788 │ │ │ │ │ ├── AccessOfMemoryLocationAfterEndOfBufferUsingStrlen.c │ │ │ │ │ ├── AccessOfMemoryLocationAfterEndOfBufferUsingStrlen.qhelp │ │ │ │ │ ├── AccessOfMemoryLocationAfterEndOfBufferUsingStrlen.ql │ │ │ │ │ ├── AccessOfMemoryLocationAfterEndOfBufferUsingStrncat.c │ │ │ │ │ ├── AccessOfMemoryLocationAfterEndOfBufferUsingStrncat.qhelp │ │ │ │ │ └── AccessOfMemoryLocationAfterEndOfBufferUsingStrncat.ql │ │ │ └── semmle │ │ │ │ └── code │ │ │ │ └── cpp │ │ │ │ ├── models │ │ │ │ └── interfaces │ │ │ │ │ ├── SimpleRangeAnalysisDefinition.qll │ │ │ │ │ └── SimpleRangeAnalysisExpr.qll │ │ │ │ ├── rangeanalysis │ │ │ │ ├── ArrayLengthAnalysis.qll │ │ │ │ ├── Bound.qll │ │ │ │ ├── ExtendedRangeAnalysis.qll │ │ │ │ ├── InBoundsPointerDeref.qll │ │ │ │ ├── RangeAnalysis.qll │ │ │ │ ├── RangeUtils.qll │ │ │ │ ├── SignAnalysis.qll │ │ │ │ └── extensions │ │ │ │ │ ├── ConstantBitwiseAndExprRange.qll │ │ │ │ │ └── SubtractSelf.qll │ │ │ │ └── security │ │ │ │ ├── PrivateCleartextWrite.qll │ │ │ │ └── PrivateData.qll │ │ ├── external │ │ │ ├── CodeDuplication.qll │ │ │ ├── DefectFilter.qll │ │ │ ├── DuplicateBlock.ql │ │ │ ├── DuplicateFunction.qhelp │ │ │ ├── DuplicateFunction.ql │ │ │ ├── ExternalArtifact.qll │ │ │ ├── MetricFilter.qll │ │ │ ├── MostlyDuplicateClass.qhelp │ │ │ ├── MostlyDuplicateClass.ql │ │ │ ├── MostlyDuplicateFile.qhelp │ │ │ ├── MostlyDuplicateFile.ql │ │ │ ├── MostlyDuplicateFunction.qhelp │ │ │ ├── MostlyDuplicateFunction.ql │ │ │ ├── MostlySimilarFile.qhelp │ │ │ ├── MostlySimilarFile.ql │ │ │ └── examples │ │ │ │ └── filters │ │ │ │ ├── BumpMetricBy10.ql │ │ │ │ ├── EditDefectMessage.ql │ │ │ │ └── ExcludeGeneratedCode.ql │ │ ├── filters │ │ │ └── ClassifyFiles.ql │ │ ├── jsf │ │ │ ├── 3.02 Code Size and Complexity │ │ │ │ ├── AV Rule 1.ql │ │ │ │ ├── AV Rule 2.ql │ │ │ │ └── AV Rule 3.ql │ │ │ ├── 4.04 Environment │ │ │ │ ├── AV Rule 11.ql │ │ │ │ ├── AV Rule 12.ql │ │ │ │ ├── AV Rule 13.ql │ │ │ │ ├── AV Rule 14.ql │ │ │ │ └── AV Rule 9.ql │ │ │ ├── 4.05 Libraries │ │ │ │ ├── AV Rule 17.ql │ │ │ │ ├── AV Rule 18.ql │ │ │ │ ├── AV Rule 19.ql │ │ │ │ ├── AV Rule 20.ql │ │ │ │ ├── AV Rule 21.ql │ │ │ │ ├── AV Rule 22.ql │ │ │ │ ├── AV Rule 23.ql │ │ │ │ ├── AV Rule 24.cpp │ │ │ │ ├── AV Rule 24.qhelp │ │ │ │ ├── AV Rule 24.ql │ │ │ │ └── AV Rule 25.ql │ │ │ ├── 4.06 Pre-Processing Directives │ │ │ │ ├── AV Rule 26.ql │ │ │ │ ├── AV Rule 27.ql │ │ │ │ ├── AV Rule 28.ql │ │ │ │ ├── AV Rule 29.ql │ │ │ │ ├── AV Rule 30.ql │ │ │ │ ├── AV Rule 31.ql │ │ │ │ ├── AV Rule 32.cpp │ │ │ │ ├── AV Rule 32.qhelp │ │ │ │ └── AV Rule 32.ql │ │ │ ├── 4.07 Header Files │ │ │ │ ├── AV Rule 33.ql │ │ │ │ ├── AV Rule 35.qhelp │ │ │ │ ├── AV Rule 35.ql │ │ │ │ ├── AV Rule 39.ql │ │ │ │ ├── JSF35-encompassing-bad.cpp │ │ │ │ ├── JSF35-encompassing-good.cpp │ │ │ │ ├── JSF35-outermost-bad.cpp │ │ │ │ ├── JSF35-outermost-good.cpp │ │ │ │ ├── JSF35-typo-bad.cpp │ │ │ │ └── JSF35-typo-good.cpp │ │ │ ├── 4.08 Implementation Files │ │ │ │ └── AV Rule 40.ql │ │ │ ├── 4.09 Style │ │ │ │ ├── AV Rule 41.ql │ │ │ │ ├── AV Rule 42.ql │ │ │ │ ├── AV Rule 43.ql │ │ │ │ ├── AV Rule 44.ql │ │ │ │ ├── AV Rule 45.ql │ │ │ │ ├── AV Rule 46.ql │ │ │ │ ├── AV Rule 47.ql │ │ │ │ ├── AV Rule 48.ql │ │ │ │ ├── AV Rule 49.ql │ │ │ │ ├── AV Rule 50.ql │ │ │ │ ├── AV Rule 51.ql │ │ │ │ ├── AV Rule 52.ql │ │ │ │ ├── AV Rule 53.1.ql │ │ │ │ ├── AV Rule 53.ql │ │ │ │ ├── AV Rule 54.ql │ │ │ │ ├── AV Rule 57.ql │ │ │ │ ├── AV Rule 58.ql │ │ │ │ ├── AV Rule 59.ql │ │ │ │ ├── AV Rule 60.ql │ │ │ │ ├── AV Rule 61.ql │ │ │ │ ├── AV Rule 63.ql │ │ │ │ └── Naming.qll │ │ │ ├── 4.10 Classes │ │ │ │ ├── AV Rule 68.ql │ │ │ │ ├── AV Rule 69.ql │ │ │ │ ├── AV Rule 70.ql │ │ │ │ ├── AV Rule 71.1.cpp │ │ │ │ ├── AV Rule 71.1.qhelp │ │ │ │ ├── AV Rule 71.1.ql │ │ │ │ ├── AV Rule 71.ql │ │ │ │ ├── AV Rule 73.ql │ │ │ │ ├── AV Rule 74.ql │ │ │ │ ├── AV Rule 75.ql │ │ │ │ ├── AV Rule 76.ql │ │ │ │ ├── AV Rule 77.1.cpp │ │ │ │ ├── AV Rule 77.1.qhelp │ │ │ │ ├── AV Rule 77.1.ql │ │ │ │ ├── AV Rule 78.cpp │ │ │ │ ├── AV Rule 78.qhelp │ │ │ │ ├── AV Rule 78.ql │ │ │ │ ├── AV Rule 79.cpp │ │ │ │ ├── AV Rule 79.qhelp │ │ │ │ ├── AV Rule 79.ql │ │ │ │ ├── AV Rule 81.ql │ │ │ │ ├── AV Rule 82.cpp │ │ │ │ ├── AV Rule 82.qhelp │ │ │ │ ├── AV Rule 82.ql │ │ │ │ ├── AV Rule 85.cpp │ │ │ │ ├── AV Rule 85.qhelp │ │ │ │ ├── AV Rule 85.ql │ │ │ │ ├── AV Rule 88.1.ql │ │ │ │ ├── AV Rule 88.cpp │ │ │ │ ├── AV Rule 88.qhelp │ │ │ │ ├── AV Rule 88.ql │ │ │ │ ├── AV Rule 89.qhelp │ │ │ │ ├── AV Rule 89.ql │ │ │ │ ├── AV Rule 94.ql │ │ │ │ ├── AV Rule 95.cpp │ │ │ │ ├── AV Rule 95.qhelp │ │ │ │ ├── AV Rule 95.ql │ │ │ │ ├── AV Rule 96.ql │ │ │ │ ├── AV Rule 97.1.ql │ │ │ │ ├── AV Rule 97.cpp │ │ │ │ ├── AV Rule 97.qhelp │ │ │ │ └── AV Rule 97.ql │ │ │ ├── 4.11 Namespaces │ │ │ │ └── AV Rule 99.ql │ │ │ ├── 4.12 Templates │ │ │ │ └── AV Rule 104.ql │ │ │ ├── 4.13 Functions │ │ │ │ ├── AV Rule 107.cpp │ │ │ │ ├── AV Rule 107.qhelp │ │ │ │ ├── AV Rule 107.ql │ │ │ │ ├── AV Rule 108.ql │ │ │ │ ├── AV Rule 110.ql │ │ │ │ ├── AV Rule 111.cpp │ │ │ │ ├── AV Rule 111.qhelp │ │ │ │ ├── AV Rule 111.ql │ │ │ │ ├── AV Rule 113.ql │ │ │ │ ├── AV Rule 114.cpp │ │ │ │ ├── AV Rule 114.qhelp │ │ │ │ ├── AV Rule 114.ql │ │ │ │ ├── AV Rule 115.ql │ │ │ │ └── AV Rule 119.ql │ │ │ ├── 4.14 Comments │ │ │ │ ├── AV Rule 126.ql │ │ │ │ ├── AV Rule 127.ql │ │ │ │ └── AV Rule 133.ql │ │ │ ├── 4.15 Declarations and Definitions │ │ │ │ ├── AV Rule 135.cpp │ │ │ │ ├── AV Rule 135.qhelp │ │ │ │ ├── AV Rule 135.ql │ │ │ │ ├── AV Rule 138.ql │ │ │ │ ├── AV Rule 139.ql │ │ │ │ ├── AV Rule 140.cpp │ │ │ │ ├── AV Rule 140.qhelp │ │ │ │ └── AV Rule 140.ql │ │ │ ├── 4.16 Initialization │ │ │ │ ├── AV Rule 142.ql │ │ │ │ ├── AV Rule 143.ql │ │ │ │ ├── AV Rule 145.cpp │ │ │ │ ├── AV Rule 145.qhelp │ │ │ │ └── AV Rule 145.ql │ │ │ ├── 4.17 Types │ │ │ │ ├── AV Rule 147.cpp │ │ │ │ ├── AV Rule 147.qhelp │ │ │ │ ├── AV Rule 147.ql │ │ │ │ ├── AV Rule 148.cpp │ │ │ │ ├── AV Rule 148.qhelp │ │ │ │ └── AV Rule 148.ql │ │ │ ├── 4.18 Constants │ │ │ │ ├── AV Rule 149.ql │ │ │ │ ├── AV Rule 150.ql │ │ │ │ ├── AV Rule 151.1.cpp │ │ │ │ ├── AV Rule 151.1.qhelp │ │ │ │ ├── AV Rule 151.1.ql │ │ │ │ └── AV Rule 151.ql │ │ │ ├── 4.19 Variables │ │ │ │ └── AV Rule 152.ql │ │ │ ├── 4.20 Unions and Bit Fields │ │ │ │ ├── AV Rule 153.ql │ │ │ │ ├── AV Rule 154.cpp │ │ │ │ ├── AV Rule 154.qhelp │ │ │ │ ├── AV Rule 154.ql │ │ │ │ ├── AV Rule 155.ql │ │ │ │ └── AV Rule 156.ql │ │ │ ├── 4.21 Operators │ │ │ │ ├── AV Rule 157.ql │ │ │ │ ├── AV Rule 158.ql │ │ │ │ ├── AV Rule 159.ql │ │ │ │ ├── AV Rule 160.ql │ │ │ │ ├── AV Rule 162.ql │ │ │ │ ├── AV Rule 163.ql │ │ │ │ ├── AV Rule 164.ql │ │ │ │ ├── AV Rule 165.cpp │ │ │ │ ├── AV Rule 165.qhelp │ │ │ │ ├── AV Rule 165.ql │ │ │ │ ├── AV Rule 166.cpp │ │ │ │ ├── AV Rule 166.qhelp │ │ │ │ ├── AV Rule 166.ql │ │ │ │ └── AV Rule 168.ql │ │ │ ├── 4.22 Pointers and References │ │ │ │ ├── AV Rule 170.ql │ │ │ │ ├── AV Rule 171.ql │ │ │ │ ├── AV Rule 173.ql │ │ │ │ ├── AV Rule 175.ql │ │ │ │ └── AV Rule 176.ql │ │ │ ├── 4.23 Type Conversions │ │ │ │ ├── AV Rule 178.ql │ │ │ │ ├── AV Rule 179.ql │ │ │ │ ├── AV Rule 180.ql │ │ │ │ ├── AV Rule 181.ql │ │ │ │ ├── AV Rule 182.ql │ │ │ │ ├── AV Rule 184.ql │ │ │ │ └── AV Rule 185.ql │ │ │ ├── 4.24 Control Flow Structures │ │ │ │ ├── AV Rule 186.ql │ │ │ │ ├── AV Rule 187.ql │ │ │ │ ├── AV Rule 188.ql │ │ │ │ ├── AV Rule 189.qhelp │ │ │ │ ├── AV Rule 189.ql │ │ │ │ ├── AV Rule 190.ql │ │ │ │ ├── AV Rule 191.ql │ │ │ │ ├── AV Rule 192.ql │ │ │ │ ├── AV Rule 193.ql │ │ │ │ ├── AV Rule 194.ql │ │ │ │ ├── AV Rule 195.ql │ │ │ │ ├── AV Rule 196.cpp │ │ │ │ ├── AV Rule 196.qhelp │ │ │ │ ├── AV Rule 196.ql │ │ │ │ ├── AV Rule 197.cpp │ │ │ │ ├── AV Rule 197.qhelp │ │ │ │ ├── AV Rule 197.ql │ │ │ │ ├── AV Rule 198.ql │ │ │ │ ├── AV Rule 199.ql │ │ │ │ ├── AV Rule 200.ql │ │ │ │ ├── AV Rule 201.cpp │ │ │ │ ├── AV Rule 201.qhelp │ │ │ │ └── AV Rule 201.ql │ │ │ ├── 4.25 Expressions │ │ │ │ ├── AV Rule 202.ql │ │ │ │ ├── AV Rule 204.1.ql │ │ │ │ ├── AV Rule 204.ql │ │ │ │ └── AV Rule 205.ql │ │ │ ├── 4.26 Memory Allocation │ │ │ │ ├── AV Rule 206.ql │ │ │ │ └── AV Rule 207.ql │ │ │ ├── 4.27 Fault Handling │ │ │ │ └── AV Rule 208.ql │ │ │ ├── 4.28 Portable Code │ │ │ │ ├── AV Rule 209.ql │ │ │ │ ├── AV Rule 210.ql │ │ │ │ ├── AV Rule 212.ql │ │ │ │ ├── AV Rule 213.ql │ │ │ │ ├── AV Rule 214.ql │ │ │ │ └── AV Rule 215.ql │ │ │ ├── jsfNote.inc.qhelp │ │ │ └── lib │ │ │ │ └── section_4_21_Operators │ │ │ │ └── AV_Rule_166.qll │ │ ├── localDefinitions.ql │ │ ├── localReferences.ql │ │ ├── objc.qll │ │ ├── printAst.ql │ │ ├── qlpack.yml │ │ ├── queries.xml │ │ ├── semmle │ │ │ ├── code │ │ │ │ └── cpp │ │ │ │ │ ├── ASTConsistency.ql │ │ │ │ │ ├── AutogeneratedFile.qll │ │ │ │ │ ├── Class.qll │ │ │ │ │ ├── Comments.qll │ │ │ │ │ ├── Compilation.qll │ │ │ │ │ ├── Declaration.qll │ │ │ │ │ ├── Diagnostics.qll │ │ │ │ │ ├── Element.qll │ │ │ │ │ ├── Enclosing.qll │ │ │ │ │ ├── Enum.qll │ │ │ │ │ ├── Field.qll │ │ │ │ │ ├── File.qll │ │ │ │ │ ├── FriendDecl.qll │ │ │ │ │ ├── Function.qll │ │ │ │ │ ├── Include.qll │ │ │ │ │ ├── Initializer.qll │ │ │ │ │ ├── Iteration.qll │ │ │ │ │ ├── Linkage.qll │ │ │ │ │ ├── Location.qll │ │ │ │ │ ├── Macro.qll │ │ │ │ │ ├── Member.qll │ │ │ │ │ ├── MemberFunction.qll │ │ │ │ │ ├── NameQualifiers.qll │ │ │ │ │ ├── Namespace.qll │ │ │ │ │ ├── NestedFields.qll │ │ │ │ │ ├── ObjectiveC.qll │ │ │ │ │ ├── PODType03.qll │ │ │ │ │ ├── Parameter.qll │ │ │ │ │ ├── Preprocessor.qll │ │ │ │ │ ├── Print.qll │ │ │ │ │ ├── PrintAST.ql │ │ │ │ │ ├── PrintAST.qll │ │ │ │ │ ├── Specifier.qll │ │ │ │ │ ├── Struct.qll │ │ │ │ │ ├── TestFile.qll │ │ │ │ │ ├── Type.qll │ │ │ │ │ ├── TypedefType.qll │ │ │ │ │ ├── Union.qll │ │ │ │ │ ├── UserType.qll │ │ │ │ │ ├── Variable.qll │ │ │ │ │ ├── XML.qll │ │ │ │ │ ├── commons │ │ │ │ │ ├── Alloc.qll │ │ │ │ │ ├── Assertions.qll │ │ │ │ │ ├── Buffer.qll │ │ │ │ │ ├── CommonType.qll │ │ │ │ │ ├── DateTime.qll │ │ │ │ │ ├── Dependency.qll │ │ │ │ │ ├── Environment.qll │ │ │ │ │ ├── Exclusions.qll │ │ │ │ │ ├── File.qll │ │ │ │ │ ├── NULL.qll │ │ │ │ │ ├── NullTermination.qll │ │ │ │ │ ├── PolymorphicClass.qll │ │ │ │ │ ├── Printf.qll │ │ │ │ │ ├── Scanf.qll │ │ │ │ │ ├── Strcat.qll │ │ │ │ │ ├── StringAnalysis.qll │ │ │ │ │ ├── StructLikeClass.qll │ │ │ │ │ ├── Synchronization.qll │ │ │ │ │ ├── VoidContext.qll │ │ │ │ │ └── unix │ │ │ │ │ │ └── Constants.qll │ │ │ │ │ ├── controlflow │ │ │ │ │ ├── BasicBlocks.qll │ │ │ │ │ ├── ControlFlowGraph.qll │ │ │ │ │ ├── Dataflow.qll │ │ │ │ │ ├── DefinitionsAndUses.qll │ │ │ │ │ ├── Dereferenced.qll │ │ │ │ │ ├── Dominance.qll │ │ │ │ │ ├── Guards.qll │ │ │ │ │ ├── IRGuards.qll │ │ │ │ │ ├── LocalScopeVariableReachability.qll │ │ │ │ │ ├── Nullness.qll │ │ │ │ │ ├── SSA.qll │ │ │ │ │ ├── SSAUtils.qll │ │ │ │ │ ├── StackVariableReachability.qll │ │ │ │ │ ├── SubBasicBlocks.qll │ │ │ │ │ └── internal │ │ │ │ │ │ ├── CFG.qll │ │ │ │ │ │ ├── ConstantExprs.qll │ │ │ │ │ │ └── PrimitiveBasicBlocks.qll │ │ │ │ │ ├── dataflow │ │ │ │ │ ├── DataFlow.qll │ │ │ │ │ ├── DataFlow2.qll │ │ │ │ │ ├── DataFlow3.qll │ │ │ │ │ ├── DataFlow4.qll │ │ │ │ │ ├── EscapesTree.qll │ │ │ │ │ ├── RecursionPrevention.qll │ │ │ │ │ ├── StackAddress.qll │ │ │ │ │ ├── TaintTracking.qll │ │ │ │ │ ├── TaintTracking2.qll │ │ │ │ │ └── internal │ │ │ │ │ │ ├── AddressFlow.qll │ │ │ │ │ │ ├── DataFlowDispatch.qll │ │ │ │ │ │ ├── DataFlowImpl.qll │ │ │ │ │ │ ├── DataFlowImpl2.qll │ │ │ │ │ │ ├── DataFlowImpl3.qll │ │ │ │ │ │ ├── DataFlowImpl4.qll │ │ │ │ │ │ ├── DataFlowImplCommon.qll │ │ │ │ │ │ ├── DataFlowImplConsistency.qll │ │ │ │ │ │ ├── DataFlowImplLocal.qll │ │ │ │ │ │ ├── DataFlowImplSpecific.qll │ │ │ │ │ │ ├── DataFlowPrivate.qll │ │ │ │ │ │ ├── DataFlowUtil.qll │ │ │ │ │ │ ├── FlowVar.qll │ │ │ │ │ │ ├── SubBasicBlocks.qll │ │ │ │ │ │ ├── TaintTrackingUtil.qll │ │ │ │ │ │ ├── tainttracking1 │ │ │ │ │ │ ├── TaintTrackingImpl.qll │ │ │ │ │ │ └── TaintTrackingParameter.qll │ │ │ │ │ │ └── tainttracking2 │ │ │ │ │ │ ├── TaintTrackingImpl.qll │ │ │ │ │ │ └── TaintTrackingParameter.qll │ │ │ │ │ ├── dispatch │ │ │ │ │ └── VirtualDispatchPrototype.qll │ │ │ │ │ ├── exprs │ │ │ │ │ ├── Access.qll │ │ │ │ │ ├── ArithmeticOperation.qll │ │ │ │ │ ├── Assignment.qll │ │ │ │ │ ├── BitwiseOperation.qll │ │ │ │ │ ├── BuiltInOperations.qll │ │ │ │ │ ├── Call.qll │ │ │ │ │ ├── Cast.qll │ │ │ │ │ ├── ComparisonOperation.qll │ │ │ │ │ ├── Expr.qll │ │ │ │ │ ├── Lambda.qll │ │ │ │ │ ├── Literal.qll │ │ │ │ │ ├── LogicalOperation.qll │ │ │ │ │ └── ObjectiveC.qll │ │ │ │ │ ├── headers │ │ │ │ │ └── MultipleInclusion.qll │ │ │ │ │ ├── internal │ │ │ │ │ ├── AddressConstantExpression.qll │ │ │ │ │ ├── QualifiedName.qll │ │ │ │ │ └── ResolveClass.qll │ │ │ │ │ ├── ir │ │ │ │ │ ├── IR.qll │ │ │ │ │ ├── IRConfiguration.qll │ │ │ │ │ ├── IRConsistency.ql │ │ │ │ │ ├── PrintIR.ql │ │ │ │ │ ├── PrintIR.qll │ │ │ │ │ ├── ValueNumbering.qll │ │ │ │ │ ├── dataflow │ │ │ │ │ │ ├── DataFlow.qll │ │ │ │ │ │ ├── DataFlow2.qll │ │ │ │ │ │ ├── DataFlow3.qll │ │ │ │ │ │ ├── DataFlow4.qll │ │ │ │ │ │ ├── DefaultTaintTracking.qll │ │ │ │ │ │ ├── TaintTracking.qll │ │ │ │ │ │ ├── TaintTracking2.qll │ │ │ │ │ │ ├── TaintTracking3.qll │ │ │ │ │ │ └── internal │ │ │ │ │ │ │ ├── DataFlowDispatch.qll │ │ │ │ │ │ │ ├── DataFlowImpl.qll │ │ │ │ │ │ │ ├── DataFlowImpl2.qll │ │ │ │ │ │ │ ├── DataFlowImpl3.qll │ │ │ │ │ │ │ ├── DataFlowImpl4.qll │ │ │ │ │ │ │ ├── DataFlowImplCommon.qll │ │ │ │ │ │ │ ├── DataFlowImplConsistency.qll │ │ │ │ │ │ │ ├── DataFlowImplSpecific.qll │ │ │ │ │ │ │ ├── DataFlowPrivate.qll │ │ │ │ │ │ │ ├── DataFlowUtil.qll │ │ │ │ │ │ │ ├── ModelUtil.qll │ │ │ │ │ │ │ ├── PrintIRLocalFlow.qll │ │ │ │ │ │ │ ├── TaintTrackingUtil.qll │ │ │ │ │ │ │ ├── tainttracking1 │ │ │ │ │ │ │ ├── TaintTrackingImpl.qll │ │ │ │ │ │ │ └── TaintTrackingParameter.qll │ │ │ │ │ │ │ ├── tainttracking2 │ │ │ │ │ │ │ ├── TaintTrackingImpl.qll │ │ │ │ │ │ │ └── TaintTrackingParameter.qll │ │ │ │ │ │ │ └── tainttracking3 │ │ │ │ │ │ │ ├── TaintTrackingImpl.qll │ │ │ │ │ │ │ └── TaintTrackingParameter.qll │ │ │ │ │ ├── implementation │ │ │ │ │ │ ├── EdgeKind.qll │ │ │ │ │ │ ├── IRConfiguration.qll │ │ │ │ │ │ ├── IRType.qll │ │ │ │ │ │ ├── MemoryAccessKind.qll │ │ │ │ │ │ ├── Opcode.qll │ │ │ │ │ │ ├── SSA.md │ │ │ │ │ │ ├── TempVariableTag.qll │ │ │ │ │ │ ├── UseSoundEscapeAnalysis.qll │ │ │ │ │ │ ├── aliased_ssa │ │ │ │ │ │ │ ├── IR.qll │ │ │ │ │ │ │ ├── IRBlock.qll │ │ │ │ │ │ │ ├── IRConsistency.ql │ │ │ │ │ │ │ ├── IRConsistency.qll │ │ │ │ │ │ │ ├── IRFunction.qll │ │ │ │ │ │ │ ├── IRVariable.qll │ │ │ │ │ │ │ ├── Instruction.qll │ │ │ │ │ │ │ ├── Operand.qll │ │ │ │ │ │ │ ├── PrintIR.ql │ │ │ │ │ │ │ ├── PrintIR.qll │ │ │ │ │ │ │ ├── constant │ │ │ │ │ │ │ │ ├── ConstantAnalysis.qll │ │ │ │ │ │ │ │ ├── PrintConstantAnalysis.qll │ │ │ │ │ │ │ │ └── internal │ │ │ │ │ │ │ │ │ └── ConstantAnalysisInternal.qll │ │ │ │ │ │ │ ├── gvn │ │ │ │ │ │ │ │ ├── PrintValueNumbering.qll │ │ │ │ │ │ │ │ ├── ValueNumbering.qll │ │ │ │ │ │ │ │ └── internal │ │ │ │ │ │ │ │ │ ├── ValueNumberingImports.qll │ │ │ │ │ │ │ │ │ └── ValueNumberingInternal.qll │ │ │ │ │ │ │ └── internal │ │ │ │ │ │ │ │ ├── AliasAnalysis.qll │ │ │ │ │ │ │ │ ├── AliasAnalysisImports.qll │ │ │ │ │ │ │ │ ├── AliasAnalysisInternal.qll │ │ │ │ │ │ │ │ ├── AliasConfiguration.qll │ │ │ │ │ │ │ │ ├── AliasConfigurationInternal.qll │ │ │ │ │ │ │ │ ├── AliasedSSA.qll │ │ │ │ │ │ │ │ ├── IRBlockImports.qll │ │ │ │ │ │ │ │ ├── IRFunctionImports.qll │ │ │ │ │ │ │ │ ├── IRImports.qll │ │ │ │ │ │ │ │ ├── IRInternal.qll │ │ │ │ │ │ │ │ ├── IRVariableImports.qll │ │ │ │ │ │ │ │ ├── InstructionImports.qll │ │ │ │ │ │ │ │ ├── OperandImports.qll │ │ │ │ │ │ │ │ ├── OperandInternal.qll │ │ │ │ │ │ │ │ ├── PrintIRImports.qll │ │ │ │ │ │ │ │ ├── PrintSSA.qll │ │ │ │ │ │ │ │ ├── SSAConsistency.ql │ │ │ │ │ │ │ │ ├── SSAConsistency.qll │ │ │ │ │ │ │ │ ├── SSAConstruction.qll │ │ │ │ │ │ │ │ ├── SSAConstructionImports.qll │ │ │ │ │ │ │ │ └── SSAConstructionInternal.qll │ │ │ │ │ │ ├── internal │ │ │ │ │ │ │ ├── EdgeKindInternal.qll │ │ │ │ │ │ │ ├── IRConfigurationInternal.qll │ │ │ │ │ │ │ ├── IRFunctionBase.qll │ │ │ │ │ │ │ ├── IRFunctionBaseInternal.qll │ │ │ │ │ │ │ ├── IRTypeInternal.qll │ │ │ │ │ │ │ ├── OpcodeImports.qll │ │ │ │ │ │ │ ├── OperandTag.qll │ │ │ │ │ │ │ ├── OperandTagInternal.qll │ │ │ │ │ │ │ ├── TIRVariable.qll │ │ │ │ │ │ │ ├── TIRVariableInternal.qll │ │ │ │ │ │ │ ├── TInstruction.qll │ │ │ │ │ │ │ ├── TInstructionImports.qll │ │ │ │ │ │ │ ├── TInstructionInternal.qll │ │ │ │ │ │ │ ├── TOperand.qll │ │ │ │ │ │ │ └── TempVariableTagInternal.qll │ │ │ │ │ │ ├── raw │ │ │ │ │ │ │ ├── IR.qll │ │ │ │ │ │ │ ├── IRBlock.qll │ │ │ │ │ │ │ ├── IRBlockImports.qll │ │ │ │ │ │ │ ├── IRConsistency.ql │ │ │ │ │ │ │ ├── IRConsistency.qll │ │ │ │ │ │ │ ├── IRFunction.qll │ │ │ │ │ │ │ ├── IRVariable.qll │ │ │ │ │ │ │ ├── Instruction.qll │ │ │ │ │ │ │ ├── Operand.qll │ │ │ │ │ │ │ ├── PrintIR.ql │ │ │ │ │ │ │ ├── PrintIR.qll │ │ │ │ │ │ │ ├── constant │ │ │ │ │ │ │ │ ├── ConstantAnalysis.qll │ │ │ │ │ │ │ │ ├── PrintConstantAnalysis.qll │ │ │ │ │ │ │ │ └── internal │ │ │ │ │ │ │ │ │ └── ConstantAnalysisInternal.qll │ │ │ │ │ │ │ ├── gvn │ │ │ │ │ │ │ │ ├── PrintValueNumbering.qll │ │ │ │ │ │ │ │ ├── ValueNumbering.qll │ │ │ │ │ │ │ │ └── internal │ │ │ │ │ │ │ │ │ ├── ValueNumberingImports.qll │ │ │ │ │ │ │ │ │ └── ValueNumberingInternal.qll │ │ │ │ │ │ │ └── internal │ │ │ │ │ │ │ │ ├── IRBlockImports.qll │ │ │ │ │ │ │ │ ├── IRConstruction.qll │ │ │ │ │ │ │ │ ├── IRFunctionImports.qll │ │ │ │ │ │ │ │ ├── IRImports.qll │ │ │ │ │ │ │ │ ├── IRInternal.qll │ │ │ │ │ │ │ │ ├── IRVariableImports.qll │ │ │ │ │ │ │ │ ├── InstructionImports.qll │ │ │ │ │ │ │ │ ├── InstructionTag.qll │ │ │ │ │ │ │ │ ├── OperandImports.qll │ │ │ │ │ │ │ │ ├── OperandInternal.qll │ │ │ │ │ │ │ │ ├── PrintIRImports.qll │ │ │ │ │ │ │ │ ├── TranslatedCall.qll │ │ │ │ │ │ │ │ ├── TranslatedCondition.qll │ │ │ │ │ │ │ │ ├── TranslatedDeclarationEntry.qll │ │ │ │ │ │ │ │ ├── TranslatedElement.qll │ │ │ │ │ │ │ │ ├── TranslatedExpr.qll │ │ │ │ │ │ │ │ ├── TranslatedFunction.qll │ │ │ │ │ │ │ │ ├── TranslatedInitialization.qll │ │ │ │ │ │ │ │ ├── TranslatedStmt.qll │ │ │ │ │ │ │ │ ├── VarArgs.qll │ │ │ │ │ │ │ │ └── reachability │ │ │ │ │ │ │ │ ├── Dominance.qll │ │ │ │ │ │ │ │ ├── DominanceInternal.qll │ │ │ │ │ │ │ │ ├── PrintDominance.qll │ │ │ │ │ │ │ │ ├── PrintReachableBlock.qll │ │ │ │ │ │ │ │ ├── ReachableBlock.qll │ │ │ │ │ │ │ │ └── ReachableBlockInternal.qll │ │ │ │ │ │ └── unaliased_ssa │ │ │ │ │ │ │ ├── IR.qll │ │ │ │ │ │ │ ├── IRBlock.qll │ │ │ │ │ │ │ ├── IRConsistency.ql │ │ │ │ │ │ │ ├── IRConsistency.qll │ │ │ │ │ │ │ ├── IRFunction.qll │ │ │ │ │ │ │ ├── IRVariable.qll │ │ │ │ │ │ │ ├── Instruction.qll │ │ │ │ │ │ │ ├── Operand.qll │ │ │ │ │ │ │ ├── PrintIR.ql │ │ │ │ │ │ │ ├── PrintIR.qll │ │ │ │ │ │ │ ├── constant │ │ │ │ │ │ │ ├── ConstantAnalysis.qll │ │ │ │ │ │ │ ├── PrintConstantAnalysis.qll │ │ │ │ │ │ │ └── internal │ │ │ │ │ │ │ │ └── ConstantAnalysisInternal.qll │ │ │ │ │ │ │ ├── gvn │ │ │ │ │ │ │ ├── PrintValueNumbering.qll │ │ │ │ │ │ │ ├── ValueNumbering.qll │ │ │ │ │ │ │ └── internal │ │ │ │ │ │ │ │ ├── ValueNumberingImports.qll │ │ │ │ │ │ │ │ └── ValueNumberingInternal.qll │ │ │ │ │ │ │ └── internal │ │ │ │ │ │ │ ├── AliasAnalysis.qll │ │ │ │ │ │ │ ├── AliasAnalysisImports.qll │ │ │ │ │ │ │ ├── AliasAnalysisInternal.qll │ │ │ │ │ │ │ ├── AliasConfiguration.qll │ │ │ │ │ │ │ ├── AliasConfigurationImports.qll │ │ │ │ │ │ │ ├── IRBlockImports.qll │ │ │ │ │ │ │ ├── IRFunctionImports.qll │ │ │ │ │ │ │ ├── IRImports.qll │ │ │ │ │ │ │ ├── IRInternal.qll │ │ │ │ │ │ │ ├── IRVariableImports.qll │ │ │ │ │ │ │ ├── InstructionImports.qll │ │ │ │ │ │ │ ├── OperandImports.qll │ │ │ │ │ │ │ ├── OperandInternal.qll │ │ │ │ │ │ │ ├── PrintIRImports.qll │ │ │ │ │ │ │ ├── PrintSSA.qll │ │ │ │ │ │ │ ├── SSAConsistency.ql │ │ │ │ │ │ │ ├── SSAConsistency.qll │ │ │ │ │ │ │ ├── SSAConstruction.qll │ │ │ │ │ │ │ ├── SSAConstructionImports.qll │ │ │ │ │ │ │ ├── SSAConstructionInternal.qll │ │ │ │ │ │ │ ├── SimpleSSA.qll │ │ │ │ │ │ │ ├── SimpleSSAImports.qll │ │ │ │ │ │ │ ├── SimpleSSAPublicImports.qll │ │ │ │ │ │ │ └── reachability │ │ │ │ │ │ │ ├── Dominance.qll │ │ │ │ │ │ │ ├── DominanceInternal.qll │ │ │ │ │ │ │ ├── PrintDominance.qll │ │ │ │ │ │ │ ├── PrintReachableBlock.qll │ │ │ │ │ │ │ ├── ReachableBlock.qll │ │ │ │ │ │ │ └── ReachableBlockInternal.qll │ │ │ │ │ └── internal │ │ │ │ │ │ ├── ASTValueNumbering.qll │ │ │ │ │ │ ├── CppType.qll │ │ │ │ │ │ ├── IRCppLanguage.qll │ │ │ │ │ │ ├── IRUtilities.qll │ │ │ │ │ │ ├── IntegerConstant.qll │ │ │ │ │ │ ├── IntegerInterval.qll │ │ │ │ │ │ ├── IntegerPartial.qll │ │ │ │ │ │ ├── Overlap.qll │ │ │ │ │ │ └── TempVariableTag.qll │ │ │ │ │ ├── metrics │ │ │ │ │ ├── MetricClass.qll │ │ │ │ │ ├── MetricFile.qll │ │ │ │ │ ├── MetricFunction.qll │ │ │ │ │ └── MetricNamespace.qll │ │ │ │ │ ├── models │ │ │ │ │ ├── Models.qll │ │ │ │ │ ├── implementations │ │ │ │ │ │ ├── Accept.qll │ │ │ │ │ │ ├── Allocation.qll │ │ │ │ │ │ ├── Deallocation.qll │ │ │ │ │ │ ├── Fread.qll │ │ │ │ │ │ ├── GetDelim.qll │ │ │ │ │ │ ├── Getenv.qll │ │ │ │ │ │ ├── Gets.qll │ │ │ │ │ │ ├── IdentityFunction.qll │ │ │ │ │ │ ├── Inet.qll │ │ │ │ │ │ ├── Iterator.qll │ │ │ │ │ │ ├── MemberFunction.qll │ │ │ │ │ │ ├── Memcpy.qll │ │ │ │ │ │ ├── Memset.qll │ │ │ │ │ │ ├── Poll.qll │ │ │ │ │ │ ├── Printf.qll │ │ │ │ │ │ ├── Pure.qll │ │ │ │ │ │ ├── Recv.qll │ │ │ │ │ │ ├── Select.qll │ │ │ │ │ │ ├── Send.qll │ │ │ │ │ │ ├── SmartPointer.qll │ │ │ │ │ │ ├── Sscanf.qll │ │ │ │ │ │ ├── StdContainer.qll │ │ │ │ │ │ ├── StdMap.qll │ │ │ │ │ │ ├── StdPair.qll │ │ │ │ │ │ ├── StdSet.qll │ │ │ │ │ │ ├── StdString.qll │ │ │ │ │ │ ├── Strcat.qll │ │ │ │ │ │ ├── Strcpy.qll │ │ │ │ │ │ ├── Strcrement.qll │ │ │ │ │ │ ├── Strdup.qll │ │ │ │ │ │ ├── Strftime.qll │ │ │ │ │ │ ├── Strnextc.qll │ │ │ │ │ │ ├── Strset.qll │ │ │ │ │ │ ├── Strtok.qll │ │ │ │ │ │ └── Swap.qll │ │ │ │ │ └── interfaces │ │ │ │ │ │ ├── Alias.qll │ │ │ │ │ │ ├── Allocation.qll │ │ │ │ │ │ ├── ArrayFunction.qll │ │ │ │ │ │ ├── DataFlow.qll │ │ │ │ │ │ ├── Deallocation.qll │ │ │ │ │ │ ├── FlowSource.qll │ │ │ │ │ │ ├── FormattingFunction.qll │ │ │ │ │ │ ├── FunctionInputsAndOutputs.qll │ │ │ │ │ │ ├── Iterator.qll │ │ │ │ │ │ ├── SideEffect.qll │ │ │ │ │ │ └── Taint.qll │ │ │ │ │ ├── padding │ │ │ │ │ ├── ConsistencyCheck.ql │ │ │ │ │ └── Padding.qll │ │ │ │ │ ├── pointsto │ │ │ │ │ ├── CallGraph.qll │ │ │ │ │ └── PointsTo.qll │ │ │ │ │ ├── rangeanalysis │ │ │ │ │ ├── NanAnalysis.qll │ │ │ │ │ ├── PointlessComparison.qll │ │ │ │ │ ├── RangeAnalysisUtils.qll │ │ │ │ │ ├── RangeSSA.qll │ │ │ │ │ └── SimpleRangeAnalysis.qll │ │ │ │ │ ├── security │ │ │ │ │ ├── BufferAccess.qll │ │ │ │ │ ├── BufferWrite.qll │ │ │ │ │ ├── CommandExecution.qll │ │ │ │ │ ├── Encryption.qll │ │ │ │ │ ├── FileWrite.qll │ │ │ │ │ ├── FlowSources.qll │ │ │ │ │ ├── FunctionWithWrappers.qll │ │ │ │ │ ├── OutputWrite.qll │ │ │ │ │ ├── Overflow.qll │ │ │ │ │ ├── PrintfLike.qll │ │ │ │ │ ├── Security.qll │ │ │ │ │ ├── SecurityOptions.qll │ │ │ │ │ ├── SensitiveExprs.qll │ │ │ │ │ ├── TaintTracking.qll │ │ │ │ │ ├── TaintTrackingImpl.qll │ │ │ │ │ └── boostorg │ │ │ │ │ │ └── asio │ │ │ │ │ │ └── protocols.qll │ │ │ │ │ ├── stmts │ │ │ │ │ ├── Block.qll │ │ │ │ │ └── Stmt.qll │ │ │ │ │ └── valuenumbering │ │ │ │ │ ├── GlobalValueNumbering.qll │ │ │ │ │ ├── GlobalValueNumberingImpl.qll │ │ │ │ │ └── HashCons.qll │ │ │ └── files │ │ │ │ └── FileSystem.qll │ │ ├── semmlecode.cpp.dbscheme │ │ ├── semmlecode.cpp.dbscheme.stats │ │ └── tools │ │ │ └── instantiate_templates.py │ └── test │ │ ├── .project │ │ ├── .qlpath │ │ ├── README.md │ │ ├── TestUtilities │ │ ├── InlineExpectationsTest.qll │ │ ├── InlineExpectationsTestPrivate.qll │ │ └── dataflow │ │ │ └── FlowTestCommon.qll │ │ ├── examples │ │ ├── BadLocking │ │ │ ├── AV Rule 107.expected │ │ │ ├── AV Rule 107.qlref │ │ │ ├── DeclStmts.expected │ │ │ ├── DeclStmts.ql │ │ │ ├── LocalVariableHidesGlobalVariable.expected │ │ │ ├── LocalVariableHidesGlobalVariable.qlref │ │ │ └── UnintendedDeclaration.cpp │ │ ├── expressions │ │ │ ├── AddressOf.c │ │ │ ├── ArrayToPointer.c │ │ │ ├── Cast.c │ │ │ ├── ConditionDecl.cpp │ │ │ ├── ConstructorCall.cpp │ │ │ ├── Conversion1.c │ │ │ ├── Conversion2.c │ │ │ ├── Conversion3.cpp │ │ │ ├── Conversion4.c │ │ │ ├── ConvertVirtualFunctionPointer.cpp │ │ │ ├── DestructorCall.cpp │ │ │ ├── DynamicCast.cpp │ │ │ ├── Parenthesis.c │ │ │ ├── PointerDereference.c │ │ │ ├── PrintAST.expected │ │ │ ├── PrintAST.qlref │ │ │ ├── ReferenceDereference.cpp │ │ │ ├── ReferenceTo.cpp │ │ │ ├── Sizeof.c │ │ │ ├── StatementExpr.c │ │ │ ├── StaticMemberAccess.cpp │ │ │ ├── Subscript.c │ │ │ ├── Throw.cpp │ │ │ ├── Typeid.cpp │ │ │ ├── VacuousDestructorCall.cpp │ │ │ ├── Varargs.c │ │ │ ├── macro_etc.c │ │ │ └── union_etc.cpp │ │ └── lgtm-query-examples │ │ │ ├── README.md │ │ │ ├── assignment_to_parameter.expected │ │ │ ├── assignment_to_parameter.ql │ │ │ ├── equality_test_on_boolean.expected │ │ │ ├── equality_test_on_boolean.ql │ │ │ ├── non_literal_format_string.expected │ │ │ ├── non_literal_format_string.ql │ │ │ └── test.cpp │ │ ├── experimental │ │ ├── README.md │ │ ├── library-tests │ │ │ └── rangeanalysis │ │ │ │ ├── arraylengthanalysis │ │ │ │ ├── ArrayLengthAnalysisTest.expected │ │ │ │ ├── ArrayLengthAnalysisTest.ql │ │ │ │ └── test.cpp │ │ │ │ ├── bitwiseand │ │ │ │ ├── bitwiseand.cpp │ │ │ │ ├── bitwiseand.expected │ │ │ │ └── bitwiseand.ql │ │ │ │ ├── extended │ │ │ │ ├── extended.cpp │ │ │ │ ├── extended.expected │ │ │ │ └── extended.ql │ │ │ │ ├── extensibility │ │ │ │ ├── extensibility.c │ │ │ │ ├── extensibility.expected │ │ │ │ └── extensibility.ql │ │ │ │ ├── inboundsptr │ │ │ │ ├── InBounds.expected │ │ │ │ ├── InBounds.ql │ │ │ │ └── test.cpp │ │ │ │ ├── rangeanalysis │ │ │ │ ├── RangeAnalysis.expected │ │ │ │ ├── RangeAnalysis.ql │ │ │ │ └── test.cpp │ │ │ │ └── signanalysis │ │ │ │ ├── SignAnalysis.expected │ │ │ │ ├── SignAnalysis.ql │ │ │ │ ├── binary_logical_operator.c │ │ │ │ ├── bounded_bounds.c │ │ │ │ ├── inline_assembly.c │ │ │ │ ├── minmax.c │ │ │ │ ├── test.c │ │ │ │ └── test.cpp │ │ └── query-tests │ │ │ └── Security │ │ │ └── CWE │ │ │ ├── CWE-020 │ │ │ └── semmle │ │ │ │ └── tests │ │ │ │ ├── LateCheckOfFunctionArgument.expected │ │ │ │ ├── LateCheckOfFunctionArgument.qlref │ │ │ │ └── test.c │ │ │ ├── CWE-190 │ │ │ └── AllocMultiplicationOverflow │ │ │ │ ├── AllocMultiplicationOverflow.expected │ │ │ │ ├── AllocMultiplicationOverflow.qlref │ │ │ │ └── test.cpp │ │ │ ├── CWE-359 │ │ │ └── semmle │ │ │ │ └── tests │ │ │ │ ├── PrivateCleartextWrite.expected │ │ │ │ ├── PrivateCleartextWrite.qlref │ │ │ │ └── test.cpp │ │ │ ├── CWE-401 │ │ │ └── semmle │ │ │ │ └── tests │ │ │ │ ├── MemoryLeakOnFailedCallToRealloc.expected │ │ │ │ ├── MemoryLeakOnFailedCallToRealloc.qlref │ │ │ │ └── test.c │ │ │ ├── CWE-570 │ │ │ └── semmle │ │ │ │ └── tests │ │ │ │ ├── WrongInDetectingAndHandlingMemoryAllocationErrors.expected │ │ │ │ ├── WrongInDetectingAndHandlingMemoryAllocationErrors.qlref │ │ │ │ └── test.cpp │ │ │ ├── CWE-788 │ │ │ └── semmle │ │ │ │ └── tests │ │ │ │ ├── AccessOfMemoryLocationAfterEndOfBufferUsingStrlen.expected │ │ │ │ ├── AccessOfMemoryLocationAfterEndOfBufferUsingStrlen.qlref │ │ │ │ ├── AccessOfMemoryLocationAfterEndOfBufferUsingStrncat.expected │ │ │ │ ├── AccessOfMemoryLocationAfterEndOfBufferUsingStrncat.qlref │ │ │ │ └── test.c │ │ │ └── semmle │ │ │ └── tests │ │ │ ├── MemoryUnsafeFunctionScan.cpp │ │ │ ├── MemoryUnsafeFunctionScan.expected │ │ │ └── MemoryUnsafeFunctionScan.qlref │ │ ├── format.json │ │ ├── header-variant-tests │ │ ├── clang-pch │ │ │ ├── _.c │ │ │ ├── a.c │ │ │ ├── a.h │ │ │ ├── b.c │ │ │ ├── b.h │ │ │ ├── c.c │ │ │ ├── clang-pch.expected │ │ │ ├── clang-pch.ql │ │ │ ├── d.c │ │ │ ├── d.h │ │ │ ├── e.c │ │ │ ├── f.c │ │ │ ├── g.c │ │ │ ├── h.c │ │ │ ├── h1.h │ │ │ ├── h2.h │ │ │ └── i.c │ │ ├── deduplication │ │ │ ├── bar.h │ │ │ ├── classes.expected │ │ │ ├── classes.ql │ │ │ ├── foo.h │ │ │ ├── functions.expected │ │ │ ├── functions.ql │ │ │ ├── main1.cpp │ │ │ ├── main2.cpp │ │ │ ├── variables.expected │ │ │ └── variables.ql │ │ ├── functions-in-headers │ │ │ ├── a.h │ │ │ ├── both_variants.expected │ │ │ ├── both_variants.ql │ │ │ ├── one.cpp │ │ │ ├── one_x.expected │ │ │ ├── one_x.ql │ │ │ └── two.cpp │ │ ├── iquote │ │ │ ├── dir1 │ │ │ │ ├── a.h │ │ │ │ └── b.h │ │ │ ├── dir2 │ │ │ │ └── a.h │ │ │ ├── iquote.c │ │ │ ├── iquote.expected │ │ │ └── iquote.ql │ │ ├── isysroot │ │ │ ├── isysroot.c │ │ │ ├── isysroot.expected │ │ │ ├── isysroot.ql │ │ │ ├── other │ │ │ │ └── b.h │ │ │ └── usr │ │ │ │ └── include │ │ │ │ └── a.h │ │ ├── line-directives-in-functions │ │ │ ├── main.c │ │ │ ├── main.expected │ │ │ └── main.ql │ │ ├── microsoft-pch │ │ │ ├── _.c │ │ │ ├── a.c │ │ │ ├── a.h │ │ │ ├── b.c │ │ │ ├── c.c │ │ │ ├── microsoft-pch.expected │ │ │ └── microsoft-pch.ql │ │ ├── multi-target-includes │ │ │ ├── arrays.expected │ │ │ ├── arrays.ql │ │ │ ├── common.h │ │ │ ├── define1.h │ │ │ ├── define2.h │ │ │ ├── defines_issue.h │ │ │ ├── includes.expected │ │ │ ├── includes.ql │ │ │ ├── main1.cpp │ │ │ ├── main2.cpp │ │ │ ├── nameclash.h │ │ │ ├── subdir1 │ │ │ │ └── nameclash.h │ │ │ └── subdir2 │ │ │ │ └── nameclash.h │ │ └── type_variants │ │ │ ├── common.h │ │ │ ├── debug.cpp │ │ │ ├── release.cpp │ │ │ ├── variants.expected │ │ │ └── variants.ql │ │ ├── library-tests │ │ ├── CPP-205 │ │ │ ├── CPP-205.cpp │ │ │ ├── diags.expected │ │ │ ├── diags.ql │ │ │ ├── elements.expected │ │ │ └── elements.ql │ │ ├── CPP-206 │ │ │ ├── CPP-206.cpp │ │ │ ├── CPP-206.expected │ │ │ └── CPP-206.ql │ │ ├── CPP-207 │ │ │ ├── CPP-207.cpp │ │ │ ├── CPP-207.expected │ │ │ ├── CPP-207.ql │ │ │ └── options │ │ ├── __builtin_constant_p │ │ │ ├── __builtin_constant_p.c │ │ │ ├── diag.expected │ │ │ ├── diag.ql │ │ │ └── options │ │ ├── abi │ │ │ ├── diag.expected │ │ │ ├── diag.ql │ │ │ ├── options │ │ │ └── packed.c │ │ ├── access │ │ │ ├── DerivationAccess │ │ │ │ ├── DerivationAccess.cpp │ │ │ │ ├── actual_member.expected │ │ │ │ ├── actual_member.ql │ │ │ │ ├── hypothetical_member.expected │ │ │ │ └── hypothetical_member.ql │ │ │ ├── FieldAccess │ │ │ │ ├── FieldAccess.cpp │ │ │ │ ├── FieldAccess.expected │ │ │ │ └── FieldAccess.ql │ │ │ ├── MemberOrFriend │ │ │ │ ├── MemberOrFriend.cpp │ │ │ │ ├── MemberOrFriend.expected │ │ │ │ └── MemberOrFriend.ql │ │ │ ├── canAccessClass │ │ │ │ ├── canAccessClass.cpp │ │ │ │ ├── canAccessClass.expected │ │ │ │ └── canAccessClass.ql │ │ │ ├── canAccessMember │ │ │ │ ├── canAccessMember.cpp │ │ │ │ ├── canAccessMember.expected │ │ │ │ └── canAccessMember.ql │ │ │ └── noPublic │ │ │ │ ├── noPublic.cpp │ │ │ │ ├── noPublic.expected │ │ │ │ └── noPublic.ql │ │ ├── alias_templates │ │ │ ├── alias_templates.cpp │ │ │ ├── enum_const_parents.expected │ │ │ └── enum_const_parents.ql │ │ ├── allocators │ │ │ ├── allocators.cpp │ │ │ ├── allocators.expected │ │ │ └── allocators.ql │ │ ├── anachronisms │ │ │ ├── options │ │ │ ├── test.cpp │ │ │ ├── virtfunptrexpr.expected │ │ │ └── virtfunptrexpr.ql │ │ ├── arg_matching │ │ │ ├── arg_matching.expected │ │ │ ├── arg_matching.ql │ │ │ └── args.cpp │ │ ├── arguments │ │ │ ├── arguments.c │ │ │ ├── arguments.expected │ │ │ └── arguments.ql │ │ ├── array_expr │ │ │ ├── array_expr.c │ │ │ ├── parts.expected │ │ │ └── parts.ql │ │ ├── array_sizes │ │ │ ├── arr1.expected │ │ │ ├── arr1.ql │ │ │ ├── arr2.expected │ │ │ ├── arr2.ql │ │ │ ├── array_sizes.c │ │ │ └── array_sizes.cpp │ │ ├── atomic │ │ │ ├── atomic.cpp │ │ │ ├── options │ │ │ ├── variables.expected │ │ │ └── variables.ql │ │ ├── attributes │ │ │ ├── alignment │ │ │ │ ├── alignment.cpp │ │ │ │ ├── alignment.expected │ │ │ │ └── alignment.ql │ │ │ ├── availability │ │ │ │ ├── availability.c │ │ │ │ ├── availability.expected │ │ │ │ ├── availability.ql │ │ │ │ └── options │ │ │ ├── deprecated_with_msg │ │ │ │ ├── clang421.c │ │ │ │ ├── clang450.c │ │ │ │ ├── deprecated_with_msg.expected │ │ │ │ ├── deprecated_with_msg.ql │ │ │ │ ├── gcc421.c │ │ │ │ └── gcc450.c │ │ │ ├── enumerators │ │ │ │ ├── enumerators.c │ │ │ │ ├── enumerators.expected │ │ │ │ ├── enumerators.ql │ │ │ │ └── options │ │ │ ├── exclusive_locks_required │ │ │ │ ├── attributes.expected │ │ │ │ ├── attributes.ql │ │ │ │ └── test.cpp │ │ │ ├── field_attributes │ │ │ │ ├── field_attributes.cpp │ │ │ │ ├── field_attributes.expected │ │ │ │ └── field_attributes.ql │ │ │ ├── gnu_visibility │ │ │ │ ├── visibility.c │ │ │ │ ├── visibility.expected │ │ │ │ └── visibility.ql │ │ │ ├── ms_repeated │ │ │ │ ├── ms_repeated.c │ │ │ │ ├── ms_repeated.expected │ │ │ │ ├── ms_repeated.ql │ │ │ │ └── options │ │ │ ├── nonnull │ │ │ │ ├── attrs.expected │ │ │ │ ├── attrs.ql │ │ │ │ └── nonnull.c │ │ │ ├── routine_attributes │ │ │ │ ├── arguments.expected │ │ │ │ ├── arguments.ql │ │ │ │ ├── declspec.cpp │ │ │ │ ├── header.h │ │ │ │ ├── header_export.cpp │ │ │ │ ├── header_import.cpp │ │ │ │ ├── routine_attributes.c │ │ │ │ ├── routine_attributes.expected │ │ │ │ └── routine_attributes.ql │ │ │ ├── sal │ │ │ │ ├── options │ │ │ │ ├── sal.cpp │ │ │ │ ├── sal.expected │ │ │ │ └── sal.ql │ │ │ ├── stmt_attributes │ │ │ │ ├── all_attributes.expected │ │ │ │ ├── all_attributes.ql │ │ │ │ ├── clang_fallthrough.cpp │ │ │ │ ├── clang_fallthrough.expected │ │ │ │ └── clang_fallthrough.ql │ │ │ ├── type_attributes │ │ │ │ ├── arguments.expected │ │ │ │ ├── arguments.ql │ │ │ │ ├── type_attributes.c │ │ │ │ ├── type_attributes.expected │ │ │ │ ├── type_attributes.ql │ │ │ │ └── type_attributes_ms.cpp │ │ │ └── var_attributes │ │ │ │ ├── ms_var_attributes.cpp │ │ │ │ ├── ms_var_attributes.h │ │ │ │ ├── var_attributes.c │ │ │ │ ├── var_attributes.expected │ │ │ │ └── var_attributes.ql │ │ ├── basic_blocks │ │ │ ├── bb_cfg.expected │ │ │ ├── bb_cfg.ql │ │ │ ├── cfg.expected │ │ │ ├── cfg.ql │ │ │ └── test.c │ │ ├── blocks │ │ │ ├── c │ │ │ │ ├── blocks.c │ │ │ │ ├── blocks.expected │ │ │ │ ├── blocks.ql │ │ │ │ ├── code_blocks.expected │ │ │ │ ├── code_blocks.ql │ │ │ │ ├── exprs.expected │ │ │ │ ├── exprs.ql │ │ │ │ └── options │ │ │ ├── capture │ │ │ │ ├── capture.c │ │ │ │ ├── capture.expected │ │ │ │ ├── capture.ql │ │ │ │ ├── options │ │ │ │ ├── quals.expected │ │ │ │ └── quals.ql │ │ │ ├── cpp │ │ │ │ ├── blocks.cpp │ │ │ │ ├── blocks.expected │ │ │ │ ├── blocks.ql │ │ │ │ ├── code_blocks.expected │ │ │ │ ├── code_blocks.ql │ │ │ │ ├── exprs.expected │ │ │ │ ├── exprs.ql │ │ │ │ └── options │ │ │ └── deduplication │ │ │ │ ├── deduplication.expected │ │ │ │ ├── deduplication.ql │ │ │ │ ├── functions.expected │ │ │ │ ├── functions.ql │ │ │ │ ├── options │ │ │ │ ├── primary.c │ │ │ │ └── secondary.c │ │ ├── bugs │ │ │ └── odasa-2709 │ │ │ │ ├── one.expected │ │ │ │ ├── one.ql │ │ │ │ ├── test1.c │ │ │ │ └── test2.c │ │ ├── builtins │ │ │ ├── builtins │ │ │ │ ├── atomic.cpp │ │ │ │ ├── builtins.expected │ │ │ │ ├── builtins.ql │ │ │ │ ├── calls.expected │ │ │ │ ├── calls.ql │ │ │ │ ├── choose_expr.c │ │ │ │ ├── types.c │ │ │ │ └── varargs.c │ │ │ ├── complex │ │ │ │ ├── builtin.expected │ │ │ │ ├── builtin.ql │ │ │ │ └── complex.c │ │ │ ├── edg │ │ │ │ ├── edg.c │ │ │ │ ├── expr.expected │ │ │ │ ├── expr.ql │ │ │ │ ├── intaddr.expected │ │ │ │ └── intaddr.ql │ │ │ ├── functions_file │ │ │ │ ├── builtins.txt │ │ │ │ ├── isbuiltin.expected │ │ │ │ ├── isbuiltin.ql │ │ │ │ └── test.c │ │ │ ├── type_traits │ │ │ │ ├── expr.expected │ │ │ │ ├── expr.ql │ │ │ │ ├── ms.cpp │ │ │ │ └── options │ │ │ └── types │ │ │ │ ├── types.c │ │ │ │ ├── types.expected │ │ │ │ └── types.ql │ │ ├── c++_exceptions │ │ │ ├── ODASA-5692.cpp │ │ │ ├── anycatch.expected │ │ │ ├── anycatch.ql │ │ │ ├── catchparams.expected │ │ │ ├── catchparams.ql │ │ │ ├── exceptions.cpp │ │ │ ├── graphable.expected │ │ │ ├── graphable.ql │ │ │ ├── handler.expected │ │ │ ├── handler.ql │ │ │ ├── ms.cpp │ │ │ ├── unreachable.expected │ │ │ └── unreachable.ql │ │ ├── c11_generic │ │ │ ├── generic.c │ │ │ ├── generic.cpp │ │ │ ├── test.expected │ │ │ └── test.ql │ │ ├── c_overload │ │ │ ├── c_overload.c │ │ │ ├── c_overload.expected │ │ │ ├── c_overload.ql │ │ │ ├── calls.expected │ │ │ ├── calls.ql │ │ │ └── options │ │ ├── calls │ │ │ ├── Calls1.expected │ │ │ ├── Calls1.ql │ │ │ ├── Calls3.expected │ │ │ ├── Calls3.ql │ │ │ ├── args.expected │ │ │ ├── args.ql │ │ │ ├── calls.expected │ │ │ ├── calls.ql │ │ │ ├── calls1.cpp │ │ │ ├── calls1.h │ │ │ ├── calls2.cpp │ │ │ ├── calls3.cpp │ │ │ └── calls4.cpp │ │ ├── cast_specifiers │ │ │ ├── cast_specifiers.c │ │ │ ├── cast_specifiers.expected │ │ │ └── cast_specifiers.ql │ │ ├── clang_builtin_macros │ │ │ ├── addressof.c │ │ │ ├── addressof.expected │ │ │ ├── addressof.ql │ │ │ ├── bar.h │ │ │ ├── diag.expected │ │ │ ├── diag.ql │ │ │ ├── extended.cpp │ │ │ ├── gcc492.c │ │ │ ├── h1.h │ │ │ ├── h2.h │ │ │ ├── options │ │ │ ├── test.cpp │ │ │ ├── values.expected │ │ │ └── values.ql │ │ ├── clang_c99_default │ │ │ ├── c89.c │ │ │ ├── c99.c │ │ │ ├── clang_c99_default.expected │ │ │ └── clang_c99_default.ql │ │ ├── clang_cpp14_17 │ │ │ ├── cpp14.cpp │ │ │ ├── cpp17.cpp │ │ │ ├── test.expected │ │ │ └── test.ql │ │ ├── clang_ms │ │ │ ├── clang_ms.cpp │ │ │ ├── declspec.expected │ │ │ ├── declspec.ql │ │ │ ├── element.expected │ │ │ ├── element.ql │ │ │ └── options │ │ ├── classes │ │ │ ├── base_classes │ │ │ │ ├── base_classes.cpp │ │ │ │ ├── base_classes.expected │ │ │ │ └── base_classes.ql │ │ │ ├── classes │ │ │ │ ├── Classes.ms.cpp │ │ │ │ ├── Classes1.expected │ │ │ │ ├── Classes1.ql │ │ │ │ ├── Classes2.expected │ │ │ │ ├── Classes2.ql │ │ │ │ ├── Classes3.expected │ │ │ │ ├── Classes3.ql │ │ │ │ ├── Classes4.expected │ │ │ │ ├── Classes4.ql │ │ │ │ ├── Classes5.expected │ │ │ │ ├── Classes5.ql │ │ │ │ ├── Classes6.expected │ │ │ │ ├── Classes6.ql │ │ │ │ ├── Classes7.expected │ │ │ │ ├── Classes7.ql │ │ │ │ ├── Classes8.expected │ │ │ │ ├── Classes8.ql │ │ │ │ ├── MetricClasses1.expected │ │ │ │ ├── MetricClasses1.ql │ │ │ │ ├── MetricClasses2.expected │ │ │ │ ├── MetricClasses2.ql │ │ │ │ ├── classes.cpp │ │ │ │ └── more_classes.cpp │ │ │ ├── defcon │ │ │ │ ├── defcon.cpp │ │ │ │ ├── defcon.expected │ │ │ │ └── defcon.ql │ │ │ ├── derivations │ │ │ │ ├── derivations │ │ │ │ │ ├── common.h │ │ │ │ │ ├── derivations.expected │ │ │ │ │ ├── derivations.ql │ │ │ │ │ ├── one.cpp │ │ │ │ │ └── two.cpp │ │ │ │ └── offsets │ │ │ │ │ ├── field_offset_in.expected │ │ │ │ │ ├── field_offset_in.ql │ │ │ │ │ ├── offset_in.expected │ │ │ │ │ ├── offset_in.ql │ │ │ │ │ ├── offsets.cpp │ │ │ │ │ ├── offsets.expected │ │ │ │ │ ├── offsets.ql │ │ │ │ │ ├── vboffsets.expected │ │ │ │ │ └── vboffsets.ql │ │ │ ├── structlikeclass │ │ │ │ ├── StructLikeClass.cpp │ │ │ │ ├── StructLikeClass.expected │ │ │ │ └── StructLikeClass.ql │ │ │ └── variadic │ │ │ │ ├── expr.expected │ │ │ │ ├── expr.ql │ │ │ │ └── test.cpp │ │ ├── comments │ │ │ ├── binding │ │ │ │ ├── a.c │ │ │ │ ├── b.c │ │ │ │ ├── cb.h │ │ │ │ ├── commentBinding.expected │ │ │ │ ├── commentBinding.ql │ │ │ │ ├── h.h │ │ │ │ ├── i.h │ │ │ │ ├── macros.c │ │ │ │ ├── multi.c │ │ │ │ └── templates.cpp │ │ │ └── comments │ │ │ │ ├── comments.c │ │ │ │ ├── comments.expected │ │ │ │ ├── comments.ql │ │ │ │ ├── comments_99.c │ │ │ │ ├── comments_cpp.cpp │ │ │ │ ├── shared.h │ │ │ │ ├── shared1.c │ │ │ │ └── shared2.c │ │ ├── compiler_generated │ │ │ ├── c.c │ │ │ ├── compilerGenerated.expected │ │ │ ├── compilerGenerated.ql │ │ │ └── cpp.cpp │ │ ├── complex_numbers │ │ │ ├── conjugation.c │ │ │ ├── expr.expected │ │ │ ├── expr.ql │ │ │ └── test.c │ │ ├── complexity │ │ │ ├── Complexity.expected │ │ │ ├── Complexity.ql │ │ │ └── complexity.c │ │ ├── conditions │ │ │ ├── diag.expected │ │ │ ├── diag.ql │ │ │ ├── elements.expected │ │ │ ├── elements.ql │ │ │ ├── options │ │ │ ├── test.cpp │ │ │ ├── vars.expected │ │ │ └── vars.ql │ │ ├── constants │ │ │ ├── .gitattributes │ │ │ ├── addresses │ │ │ │ ├── addresses.cpp │ │ │ │ ├── addresses.expected │ │ │ │ └── addresses.ql │ │ │ ├── constants │ │ │ │ ├── aggregates.expected │ │ │ │ ├── aggregates.ql │ │ │ │ ├── chars.expected │ │ │ │ ├── chars.ql │ │ │ │ ├── constants.cpp │ │ │ │ ├── ints.expected │ │ │ │ ├── ints.ql │ │ │ │ ├── ms_agg_2.c │ │ │ │ ├── strings.expected │ │ │ │ └── strings.ql │ │ │ ├── initializerexpr │ │ │ │ ├── clang.c │ │ │ │ ├── initializerexpr.cpp │ │ │ │ ├── initializerexpr.expected │ │ │ │ └── initializerexpr.ql │ │ │ ├── initializers │ │ │ │ ├── initializers.c │ │ │ │ ├── initializers.cpp │ │ │ │ ├── initializers.expected │ │ │ │ └── initializers.ql │ │ │ └── strlen │ │ │ │ ├── expr.expected │ │ │ │ ├── expr.ql │ │ │ │ └── strlen.cpp │ │ ├── constexpr_if │ │ │ ├── cfg.expected │ │ │ ├── cfg.ql │ │ │ ├── stmts.expected │ │ │ ├── stmts.ql │ │ │ └── test.cpp │ │ ├── controlflow │ │ │ ├── assume │ │ │ │ ├── cfg.expected │ │ │ │ ├── cfg.ql │ │ │ │ ├── interesting.expected │ │ │ │ ├── interesting.ql │ │ │ │ ├── options │ │ │ │ ├── simple.cpp │ │ │ │ └── switch.cpp │ │ │ ├── controlflow │ │ │ │ ├── SsaCompleteness.expected │ │ │ │ ├── SsaCompleteness.ql │ │ │ │ ├── SsaCorrespondence.expected │ │ │ │ ├── SsaCorrespondence.ql │ │ │ │ ├── SsaDefUsePairs.expected │ │ │ │ ├── SsaDefUsePairs.ql │ │ │ │ ├── SsaDefinedByParameter.expected │ │ │ │ ├── SsaDefinedByParameter.ql │ │ │ │ ├── SsaDominance.expected │ │ │ │ ├── SsaDominance.ql │ │ │ │ ├── SsaLt.expected │ │ │ │ ├── SsaLt.ql │ │ │ │ ├── SsaPhiInputs.expected │ │ │ │ ├── SsaPhiInputs.ql │ │ │ │ ├── SsaUniqueness.expected │ │ │ │ ├── SsaUniqueness.ql │ │ │ │ ├── pass_by_ref.cpp │ │ │ │ ├── test.c │ │ │ │ └── test.cpp │ │ │ ├── dominance │ │ │ │ ├── bbIDominates.expected │ │ │ │ ├── bbIDominates.ql │ │ │ │ ├── dominatedByStart.expected │ │ │ │ ├── dominatedByStart.ql │ │ │ │ ├── dominator.expected │ │ │ │ ├── dominator.ql │ │ │ │ ├── dominatorExists.expected │ │ │ │ ├── dominatorExists.ql │ │ │ │ ├── dominatorUnique.expected │ │ │ │ ├── dominatorUnique.ql │ │ │ │ ├── staticFalse.c │ │ │ │ └── test.c │ │ │ ├── exits │ │ │ │ ├── exits.expected │ │ │ │ ├── exits.ql │ │ │ │ ├── test.cpp │ │ │ │ └── test.ms.cpp │ │ │ ├── guards-ir │ │ │ │ ├── test.c │ │ │ │ ├── test.cpp │ │ │ │ ├── tests.expected │ │ │ │ └── tests.ql │ │ │ ├── guards │ │ │ │ ├── Guards.expected │ │ │ │ ├── Guards.ql │ │ │ │ ├── GuardsCompare.expected │ │ │ │ ├── GuardsCompare.ql │ │ │ │ ├── GuardsControl.expected │ │ │ │ ├── GuardsControl.ql │ │ │ │ ├── GuardsEnsure.expected │ │ │ │ ├── GuardsEnsure.ql │ │ │ │ ├── test.c │ │ │ │ └── test.cpp │ │ │ ├── loopentrycondition │ │ │ │ ├── forstmt.cpp │ │ │ │ ├── forstmt01.expected │ │ │ │ ├── forstmt01.ql │ │ │ │ ├── whilestmt.cpp │ │ │ │ ├── whilestmt01.expected │ │ │ │ └── whilestmt01.ql │ │ │ ├── primitives │ │ │ │ ├── cfg.expected │ │ │ │ ├── cfg.ql │ │ │ │ ├── cpp.cpp │ │ │ │ ├── falseSucc.expected │ │ │ │ ├── falseSucc.ql │ │ │ │ ├── ms.cpp │ │ │ │ ├── test.c │ │ │ │ ├── trueSucc.expected │ │ │ │ └── trueSucc.ql │ │ │ └── stackvariablereachability │ │ │ │ ├── StackVariableReachabilityWithReassignment.expected │ │ │ │ ├── StackVariableReachabilityWithReassignment.ql │ │ │ │ ├── stackVariableReachability.c │ │ │ │ ├── stackVariableReachability.expected │ │ │ │ └── stackVariableReachability.ql │ │ ├── controlflow_stresstest │ │ │ ├── SsaDefUsePairs.expected │ │ │ ├── SsaDefUsePairs.ql │ │ │ └── ssa_stress.c │ │ ├── conversions │ │ │ ├── complex.c │ │ │ ├── consistency.expected │ │ │ ├── consistency.qlref │ │ │ ├── conversions.cpp │ │ │ ├── conversions.expected │ │ │ └── conversions.ql │ │ ├── cpp11_g │ │ │ ├── cfg.expected │ │ │ ├── cfg.ql │ │ │ └── cpp11_g.cpp │ │ ├── cpp_builtin_types │ │ │ ├── bool │ │ │ │ ├── Variables.expected │ │ │ │ ├── Variables.ql │ │ │ │ ├── a-source.cpp │ │ │ │ └── c-source.c │ │ │ └── wchar_t │ │ │ │ ├── Variables.expected │ │ │ │ ├── Variables.ql │ │ │ │ ├── a-source.cpp │ │ │ │ └── c-source.c │ │ ├── ctorinits │ │ │ ├── calls.expected │ │ │ ├── calls.ql │ │ │ ├── ctorinits.cpp │ │ │ ├── ctors.expected │ │ │ ├── ctors.ql │ │ │ ├── dtors.expected │ │ │ └── dtors.ql │ │ ├── dataflow │ │ │ ├── DefaultTaintTracking │ │ │ │ ├── annotate_path_to_sink │ │ │ │ │ ├── dispatch.cpp │ │ │ │ │ ├── tainted.expected │ │ │ │ │ ├── tainted.ql │ │ │ │ │ └── test_diff.cpp │ │ │ │ ├── annotate_sinks_only │ │ │ │ │ ├── defaulttainttracking.cpp │ │ │ │ │ ├── remote-flow-sink.expected │ │ │ │ │ ├── remote-flow-sink.ql │ │ │ │ │ ├── stl.cpp │ │ │ │ │ ├── tainted.expected │ │ │ │ │ └── tainted.ql │ │ │ │ ├── globals │ │ │ │ │ ├── global.expected │ │ │ │ │ ├── global.ql │ │ │ │ │ └── globals.cpp │ │ │ │ └── shared.h │ │ │ ├── additional-flow-to-parameter │ │ │ │ ├── standardFlow.expected │ │ │ │ ├── standardFlow.ql │ │ │ │ ├── test.cpp │ │ │ │ ├── withAdditionalFlow.expected │ │ │ │ └── withAdditionalFlow.ql │ │ │ ├── crement │ │ │ │ ├── crements.cpp │ │ │ │ ├── from0.expected │ │ │ │ └── from0.ql │ │ │ ├── dataflow-edge-tests │ │ │ │ ├── additionalEdges.expected │ │ │ │ ├── additionalEdges.ql │ │ │ │ ├── standardEdges.expected │ │ │ │ ├── standardEdges.ql │ │ │ │ └── tryExcept.c │ │ │ ├── dataflow-tests │ │ │ │ ├── BarrierGuard.cpp │ │ │ │ ├── acrossLinkTargets.cpp │ │ │ │ ├── clang.cpp │ │ │ │ ├── dataflow-consistency.expected │ │ │ │ ├── dataflow-consistency.ql │ │ │ │ ├── dataflow-ir-consistency.expected │ │ │ │ ├── dataflow-ir-consistency.ql │ │ │ │ ├── dispatch.cpp │ │ │ │ ├── example.c │ │ │ │ ├── globals.cpp │ │ │ │ ├── lambdas.cpp │ │ │ │ ├── localFlow.expected │ │ │ │ ├── localFlow.ql │ │ │ │ ├── ref.cpp │ │ │ │ ├── test.cpp │ │ │ │ ├── test.expected │ │ │ │ ├── test.ql │ │ │ │ ├── true_upon_entry.cpp │ │ │ │ ├── uninitialized.expected │ │ │ │ └── uninitialized.ql │ │ │ ├── fields │ │ │ │ ├── A.cpp │ │ │ │ ├── ASTConfiguration.qll │ │ │ │ ├── B.cpp │ │ │ │ ├── C.cpp │ │ │ │ ├── D.cpp │ │ │ │ ├── E.cpp │ │ │ │ ├── IRConfiguration.qll │ │ │ │ ├── Nodes.qll │ │ │ │ ├── aliasing.cpp │ │ │ │ ├── arrays.cpp │ │ │ │ ├── by_reference.cpp │ │ │ │ ├── complex.cpp │ │ │ │ ├── conflated.cpp │ │ │ │ ├── constructors.cpp │ │ │ │ ├── dataflow-consistency.expected │ │ │ │ ├── dataflow-consistency.ql │ │ │ │ ├── dataflow-ir-consistency.expected │ │ │ │ ├── dataflow-ir-consistency.ql │ │ │ │ ├── flow.expected │ │ │ │ ├── flow.ql │ │ │ │ ├── ir-path-flow.expected │ │ │ │ ├── ir-path-flow.ql │ │ │ │ ├── partial-definition-diff.expected │ │ │ │ ├── partial-definition-diff.ql │ │ │ │ ├── partial-definition-ir.expected │ │ │ │ ├── partial-definition-ir.ql │ │ │ │ ├── partial-definition.expected │ │ │ │ ├── partial-definition.ql │ │ │ │ ├── path-flow.expected │ │ │ │ ├── path-flow.ql │ │ │ │ ├── qualifiers.cpp │ │ │ │ ├── realistic.cpp │ │ │ │ ├── simple.cpp │ │ │ │ └── struct_init.c │ │ │ ├── partialdefinitions │ │ │ │ ├── partialdefinitions.cpp │ │ │ │ ├── partialdefinitions.expected │ │ │ │ └── partialdefinitions.ql │ │ │ ├── recursion │ │ │ │ ├── chained_use.expected │ │ │ │ ├── chained_use.ql │ │ │ │ └── recursion.c │ │ │ ├── security-taint │ │ │ │ ├── tainted.expected │ │ │ │ ├── tainted.ql │ │ │ │ ├── tainted_diff.expected │ │ │ │ ├── tainted_diff.ql │ │ │ │ ├── tainted_ir.expected │ │ │ │ ├── tainted_ir.ql │ │ │ │ └── test.cpp │ │ │ ├── stackaddress │ │ │ │ ├── StackPointerFlowsToUse.expected │ │ │ │ ├── StackPointerFlowsToUse.ql │ │ │ │ └── test.cpp │ │ │ ├── taint-tests │ │ │ │ ├── arrayassignment.cpp │ │ │ │ ├── bsd.cpp │ │ │ │ ├── constructor_delegation.cpp │ │ │ │ ├── copyableclass.cpp │ │ │ │ ├── copyableclass_declonly.cpp │ │ │ │ ├── format.cpp │ │ │ │ ├── localTaint.expected │ │ │ │ ├── localTaint.ql │ │ │ │ ├── map.cpp │ │ │ │ ├── movableclass.cpp │ │ │ │ ├── set.cpp │ │ │ │ ├── smart_pointer.cpp │ │ │ │ ├── standalone_iterators.cpp │ │ │ │ ├── stl.h │ │ │ │ ├── string.cpp │ │ │ │ ├── stringstream.cpp │ │ │ │ ├── structlikeclass.cpp │ │ │ │ ├── swap.h │ │ │ │ ├── swap1.cpp │ │ │ │ ├── swap2.cpp │ │ │ │ ├── taint.cpp │ │ │ │ ├── taint.expected │ │ │ │ ├── taint.ql │ │ │ │ ├── type_traits.h │ │ │ │ └── vector.cpp │ │ │ └── variable │ │ │ │ ├── noInit.c │ │ │ │ ├── noInit.expected │ │ │ │ └── noInit.ql │ │ ├── declaration │ │ │ ├── IsMember.expected │ │ │ ├── IsMember.ql │ │ │ └── declaration.cpp │ │ ├── declarationEntry │ │ │ ├── declarationEntry │ │ │ │ ├── declarationEntry.c │ │ │ │ ├── declarationEntry.cpp │ │ │ │ ├── declarationEntry.expected │ │ │ │ ├── declarationEntry.ql │ │ │ │ ├── fde.expected │ │ │ │ ├── fde.ql │ │ │ │ └── macro.c │ │ │ ├── local │ │ │ │ ├── declarationEntry.expected │ │ │ │ ├── declarationEntry.ql │ │ │ │ └── test.cpp │ │ │ ├── more │ │ │ │ ├── declarationEntry.expected │ │ │ │ ├── declarationEntry.ql │ │ │ │ └── test.cpp │ │ │ └── template │ │ │ │ ├── declarationEntry.expected │ │ │ │ ├── declarationEntry.ql │ │ │ │ ├── src1.cpp │ │ │ │ ├── src2.cpp │ │ │ │ ├── src3.cpp │ │ │ │ ├── src4.cpp │ │ │ │ ├── src5.cpp │ │ │ │ ├── src5.fwd.hpp │ │ │ │ ├── src6.cpp │ │ │ │ ├── usertype.expected │ │ │ │ └── usertype.ql │ │ ├── declspec │ │ │ └── guard │ │ │ │ ├── test.cpp │ │ │ │ ├── test.expected │ │ │ │ └── test.ql │ │ ├── declstmt │ │ │ ├── cpp.cpp │ │ │ ├── declstmt.c │ │ │ ├── getDeclaration.expected │ │ │ ├── getDeclaration.ql │ │ │ ├── getDeclarationEntry.expected │ │ │ └── getDeclarationEntry.ql │ │ ├── default_parameters │ │ │ ├── exprs.expected │ │ │ ├── exprs.ql │ │ │ ├── test.cpp │ │ │ ├── variables.expected │ │ │ └── variables.ql │ │ ├── defuse │ │ │ ├── addressOf.cpp │ │ │ ├── definition.expected │ │ │ ├── definition.ql │ │ │ ├── definitionUsePair.expected │ │ │ ├── definitionUsePair.ql │ │ │ ├── definitionUsePairEquivalence.expected │ │ │ ├── definitionUsePairEquivalence.ql │ │ │ ├── exprDefinition.expected │ │ │ ├── exprDefinition.ql │ │ │ ├── indirect_use.cpp │ │ │ ├── isAddressOfAccess.expected │ │ │ ├── isAddressOfAccess.ql │ │ │ ├── parameterUsePair.expected │ │ │ ├── parameterUsePair.ql │ │ │ ├── pass_by_ref.cpp │ │ │ ├── test.cpp │ │ │ ├── useOfVar.expected │ │ │ ├── useOfVar.ql │ │ │ ├── useOfVarActual.expected │ │ │ ├── useOfVarActual.ql │ │ │ ├── useUsePair.expected │ │ │ └── useUsePair.ql │ │ ├── depends_addressable │ │ │ ├── DependsAddressable1.expected │ │ │ ├── DependsAddressable1.ql │ │ │ └── addressable.cpp │ │ ├── depends_friends │ │ │ ├── Friend1.expected │ │ │ ├── Friend1.ql │ │ │ └── friends.cpp │ │ ├── depends_initializers │ │ │ ├── InitializerAccesses.expected │ │ │ ├── InitializerAccesses.ql │ │ │ ├── InitializerCFG.expected │ │ │ ├── InitializerCFG.ql │ │ │ ├── InitializerCalls.expected │ │ │ ├── InitializerCalls.ql │ │ │ ├── VariableInitializers.expected │ │ │ ├── VariableInitializers.ql │ │ │ ├── initializers.cpp │ │ │ ├── template_static.cpp │ │ │ └── template_static_instantiated.cpp │ │ ├── derived_types │ │ │ ├── DerivedTypesBaseType.expected │ │ │ ├── DerivedTypesBaseType.ql │ │ │ └── derivedtype.cpp │ │ ├── destructors │ │ │ ├── cfg.expected │ │ │ ├── cfg.ql │ │ │ ├── destructors.cpp │ │ │ ├── destructors2.cpp │ │ │ ├── jump_destructs.expected │ │ │ ├── jump_destructs.ql │ │ │ └── mkdot.pl │ │ ├── diagnostics │ │ │ ├── diagnostics.c │ │ │ ├── diags.expected │ │ │ ├── diags.ql │ │ │ └── options │ │ ├── digraphs │ │ │ ├── digraphs.cpp │ │ │ ├── digraphs.expected │ │ │ ├── digraphs.ql │ │ │ └── options │ │ ├── enums │ │ │ ├── enums │ │ │ │ ├── Enums1.expected │ │ │ │ ├── Enums1.ql │ │ │ │ ├── Enums2.expected │ │ │ │ ├── Enums2.ql │ │ │ │ ├── Enums3.expected │ │ │ │ ├── Enums3.ql │ │ │ │ ├── enums.cpp │ │ │ │ ├── enums.ms.c │ │ │ │ └── scoped.cpp │ │ │ ├── multi_file │ │ │ │ ├── a.c │ │ │ │ ├── a.h │ │ │ │ ├── b.c │ │ │ │ ├── eca.expected │ │ │ │ ├── eca.ql │ │ │ │ ├── enumConstant.expected │ │ │ │ └── enumConstant.ql │ │ │ └── typedefs │ │ │ │ ├── exprs.expected │ │ │ │ ├── exprs.ql │ │ │ │ └── test.c │ │ ├── environment │ │ │ ├── environmentRead.expected │ │ │ ├── environmentRead.ql │ │ │ ├── stdlib.h │ │ │ └── test.c │ │ ├── exclusions │ │ │ ├── exclusions.cpp │ │ │ ├── exclusions.expected │ │ │ └── exclusions.ql │ │ ├── exprs │ │ │ ├── comparison_operation │ │ │ │ ├── comparison_operation.expected │ │ │ │ ├── comparison_operation.ql │ │ │ │ └── test.cpp │ │ │ ├── conditional_decl │ │ │ │ ├── conditionaldeclexpr.cpp │ │ │ │ ├── conditionaldeclexpr.expected │ │ │ │ └── conditionaldeclexpr.ql │ │ │ ├── min_max │ │ │ │ ├── expr.expected │ │ │ │ ├── expr.ql │ │ │ │ └── test.cpp │ │ │ ├── unary_operation │ │ │ │ ├── test.cpp │ │ │ │ ├── unary_operation.expected │ │ │ │ └── unary_operation.ql │ │ │ ├── unevaluated │ │ │ │ ├── test.cpp │ │ │ │ ├── typeinfo.h │ │ │ │ ├── unevaluated.expected │ │ │ │ └── unevaluated.ql │ │ │ └── value_categories │ │ │ │ ├── loads.expected │ │ │ │ ├── loads.ql │ │ │ │ ├── value_categories.cpp │ │ │ │ ├── value_categories.expected │ │ │ │ └── value_categories.ql │ │ ├── exprs_basic │ │ │ ├── ExprsBasic1.expected │ │ │ ├── ExprsBasic1.ql │ │ │ ├── ExprsBasic3.expected │ │ │ ├── ExprsBasic3.ql │ │ │ ├── ExprsBasic4.expected │ │ │ ├── ExprsBasic4.ql │ │ │ ├── ExprsBasic5.expected │ │ │ ├── ExprsBasic5.ql │ │ │ ├── ExprsBasic7.expected │ │ │ ├── ExprsBasic7.ql │ │ │ ├── ExprsBasic8.expected │ │ │ ├── ExprsBasic8.ql │ │ │ ├── ExprsBasic9.expected │ │ │ ├── ExprsBasic9.ql │ │ │ └── exprs_basic1.cpp │ │ ├── exprs_cast │ │ │ ├── ExprsCast1.expected │ │ │ ├── ExprsCast1.ql │ │ │ ├── ExprsCast2.expected │ │ │ ├── ExprsCast2.ql │ │ │ ├── exprs_cast.cpp │ │ │ └── options │ │ ├── fields │ │ │ ├── fields │ │ │ │ ├── EnumConst.expected │ │ │ │ ├── EnumConst.ql │ │ │ │ ├── Fields.expected │ │ │ │ ├── Fields.ql │ │ │ │ ├── MemberVariable.expected │ │ │ │ ├── MemberVariable.ql │ │ │ │ └── fields.cpp │ │ │ └── segfault │ │ │ │ ├── exprs.expected │ │ │ │ ├── exprs.ql │ │ │ │ └── segfault.cpp │ │ ├── files │ │ │ ├── Files.expected │ │ │ ├── Files.ql │ │ │ ├── c.c │ │ │ ├── files1.cpp │ │ │ ├── files1.h │ │ │ └── files2.cpp │ │ ├── floats │ │ │ ├── float128 │ │ │ │ ├── errors.expected │ │ │ │ ├── errors.ql │ │ │ │ ├── float128.cpp │ │ │ │ ├── functions.expected │ │ │ │ ├── functions.ql │ │ │ │ ├── usertypes.expected │ │ │ │ └── usertypes.ql │ │ │ └── floats │ │ │ │ ├── floats.c │ │ │ │ ├── floats.expected │ │ │ │ └── floats.ql │ │ ├── fold │ │ │ ├── fold.cpp │ │ │ ├── fold.expected │ │ │ └── fold.ql │ │ ├── friends │ │ │ ├── friends │ │ │ │ ├── friends.cpp │ │ │ │ ├── instantiated_template_class.expected │ │ │ │ ├── instantiated_template_class.ql │ │ │ │ ├── nesting.expected │ │ │ │ ├── nesting.ql │ │ │ │ ├── prototype_template_class.expected │ │ │ │ └── prototype_template_class.ql │ │ │ └── loop │ │ │ │ ├── friends.expected │ │ │ │ ├── friends.ql │ │ │ │ └── loop.cpp │ │ ├── fun_decl │ │ │ ├── compile1.cpp │ │ │ ├── compile2.cpp │ │ │ ├── fwd.h │ │ │ ├── test.expected │ │ │ └── test.ql │ │ ├── funcdname │ │ │ ├── funcdname.cpp │ │ │ ├── funcdname.expected │ │ │ ├── funcdname.ql │ │ │ └── options │ │ ├── function_try_stmt │ │ │ ├── function_try_stmt.cpp │ │ │ ├── function_try_stmt.expected │ │ │ └── function_try_stmt.ql │ │ ├── functionpointerish │ │ │ ├── functionpointerish.cpp │ │ │ ├── functionpointerish.expected │ │ │ ├── functionpointerish.ql │ │ │ └── options │ │ ├── functions │ │ │ ├── arguments │ │ │ │ ├── arguments.expected │ │ │ │ ├── arguments.ql │ │ │ │ ├── num_arguments.expected │ │ │ │ ├── num_arguments.ql │ │ │ │ └── test.c │ │ │ ├── constexpr │ │ │ │ ├── constexpr.cpp │ │ │ │ ├── constexpr.expected │ │ │ │ └── constexpr.ql │ │ │ ├── fde_get_block │ │ │ │ ├── fde_get_block.c │ │ │ │ ├── fde_get_block.expected │ │ │ │ └── fde_get_block.ql │ │ │ ├── functionaccess │ │ │ │ ├── FunctionAccess.cpp │ │ │ │ ├── FunctionAccess.expected │ │ │ │ └── FunctionAccess.ql │ │ │ ├── functions │ │ │ │ ├── FunctionCalls.expected │ │ │ │ ├── FunctionCalls.ql │ │ │ │ ├── Functions1.expected │ │ │ │ ├── Functions1.ql │ │ │ │ ├── Functions2.expected │ │ │ │ ├── Functions2.ql │ │ │ │ ├── ODASA-5186.cpp │ │ │ │ ├── ODASA-5186.hpp │ │ │ │ ├── ODASA-5722.cpp │ │ │ │ └── functions.cpp │ │ │ ├── generated │ │ │ │ ├── a.cpp │ │ │ │ ├── a.h │ │ │ │ ├── b.cpp │ │ │ │ ├── calls.expected │ │ │ │ └── calls.ql │ │ │ ├── getathrowntype │ │ │ │ ├── getAThrownType.expected │ │ │ │ ├── getAThrownType.ql │ │ │ │ └── test.cpp │ │ │ ├── override │ │ │ │ ├── override.cpp │ │ │ │ ├── override.expected │ │ │ │ └── override.ql │ │ │ ├── qualifiers │ │ │ │ ├── a.cpp │ │ │ │ ├── test.expected │ │ │ │ └── test.ql │ │ │ └── routinetype │ │ │ │ ├── routinetype.cpp │ │ │ │ ├── types.expected │ │ │ │ └── types.ql │ │ ├── identifiers │ │ │ └── qualified_names │ │ │ │ ├── qualifiedNames.cpp │ │ │ │ ├── qualifiedNames.expected │ │ │ │ ├── qualifiedNames.ql │ │ │ │ ├── unnamed.expected │ │ │ │ └── unnamed.ql │ │ ├── identity_string │ │ │ ├── identity_string.cpp │ │ │ ├── identity_string.expected │ │ │ └── identity_string.ql │ │ ├── includes │ │ │ ├── include_next │ │ │ │ ├── a │ │ │ │ │ └── test.h │ │ │ │ ├── b │ │ │ │ │ ├── loop.h │ │ │ │ │ └── test.h │ │ │ │ ├── foo.c │ │ │ │ ├── includes.expected │ │ │ │ └── includes.ql │ │ │ ├── includes │ │ │ │ ├── bar.h │ │ │ │ ├── includes.c │ │ │ │ ├── locations.expected │ │ │ │ └── locations.ql │ │ │ └── non_existent │ │ │ │ ├── diags.expected │ │ │ │ ├── diags.ql │ │ │ │ ├── options │ │ │ │ └── test.c │ │ ├── instantiations │ │ │ ├── test.cpp │ │ │ ├── test.expected │ │ │ └── test.ql │ │ ├── ir │ │ │ ├── constant_func │ │ │ │ ├── constant_func.cpp │ │ │ │ ├── constant_func.expected │ │ │ │ └── constant_func.ql │ │ │ ├── constants │ │ │ │ ├── constants.cpp │ │ │ │ ├── constants.expected │ │ │ │ └── constants.ql │ │ │ ├── escape │ │ │ │ ├── escape.cpp │ │ │ │ ├── escape.expected │ │ │ │ ├── escape.ql │ │ │ │ ├── ssa_escape.expected │ │ │ │ └── ssa_escape.ql │ │ │ ├── ir │ │ │ │ ├── PrintAST.expected │ │ │ │ ├── PrintAST.qlref │ │ │ │ ├── aliased_ssa_consistency.expected │ │ │ │ ├── aliased_ssa_consistency.ql │ │ │ │ ├── aliased_ssa_consistency_unsound.expected │ │ │ │ ├── aliased_ssa_consistency_unsound.qlref │ │ │ │ ├── aliased_ssa_ssa_consistency.expected │ │ │ │ ├── aliased_ssa_ssa_consistency.ql │ │ │ │ ├── aliased_ssa_ssa_consistency_unsound.expected │ │ │ │ ├── aliased_ssa_ssa_consistency_unsound.qlref │ │ │ │ ├── bad_asts.cpp │ │ │ │ ├── clang.cpp │ │ │ │ ├── complex.c │ │ │ │ ├── ir.cpp │ │ │ │ ├── perf-regression.cpp │ │ │ │ ├── raw_consistency.expected │ │ │ │ ├── raw_consistency.qlref │ │ │ │ ├── raw_ir.expected │ │ │ │ ├── raw_ir.qlref │ │ │ │ ├── struct_init.cpp │ │ │ │ ├── unaliased_ssa_consistency.expected │ │ │ │ ├── unaliased_ssa_consistency.ql │ │ │ │ ├── unaliased_ssa_consistency_unsound.expected │ │ │ │ ├── unaliased_ssa_consistency_unsound.qlref │ │ │ │ ├── unaliased_ssa_ssa_consistency.expected │ │ │ │ ├── unaliased_ssa_ssa_consistency.ql │ │ │ │ ├── unaliased_ssa_ssa_consistency_unsound.expected │ │ │ │ └── unaliased_ssa_ssa_consistency_unsound.qlref │ │ │ ├── points_to │ │ │ │ ├── points_to.cpp │ │ │ │ ├── points_to.expected │ │ │ │ └── points_to.ql │ │ │ ├── ssa │ │ │ │ ├── aliased_ssa_consistency.expected │ │ │ │ ├── aliased_ssa_consistency.ql │ │ │ │ ├── aliased_ssa_consistency_unsound.expected │ │ │ │ ├── aliased_ssa_consistency_unsound.qlref │ │ │ │ ├── aliased_ssa_ir.expected │ │ │ │ ├── aliased_ssa_ir.ql │ │ │ │ ├── aliased_ssa_ir_unsound.expected │ │ │ │ ├── aliased_ssa_ir_unsound.qlref │ │ │ │ ├── aliased_ssa_ssa_consistency.expected │ │ │ │ ├── aliased_ssa_ssa_consistency.ql │ │ │ │ ├── aliased_ssa_ssa_consistency_unsound.expected │ │ │ │ ├── aliased_ssa_ssa_consistency_unsound.qlref │ │ │ │ ├── ssa.cpp │ │ │ │ ├── unaliased_ssa_consistency.expected │ │ │ │ ├── unaliased_ssa_consistency.ql │ │ │ │ ├── unaliased_ssa_consistency_unsound.expected │ │ │ │ ├── unaliased_ssa_consistency_unsound.qlref │ │ │ │ ├── unaliased_ssa_ir.expected │ │ │ │ ├── unaliased_ssa_ir.ql │ │ │ │ ├── unaliased_ssa_ir_unsound.expected │ │ │ │ ├── unaliased_ssa_ir_unsound.qlref │ │ │ │ ├── unaliased_ssa_ssa_consistency.expected │ │ │ │ ├── unaliased_ssa_ssa_consistency.ql │ │ │ │ ├── unaliased_ssa_ssa_consistency_unsound.expected │ │ │ │ └── unaliased_ssa_ssa_consistency_unsound.qlref │ │ │ └── types │ │ │ │ ├── complex.c │ │ │ │ ├── irtypes.cpp │ │ │ │ ├── irtypes.expected │ │ │ │ └── irtypes.ql │ │ ├── lambdas │ │ │ ├── calling_conv │ │ │ │ ├── calling_conv.expected │ │ │ │ ├── calling_conv.ql │ │ │ │ ├── gnu.cpp │ │ │ │ ├── ms.cpp │ │ │ │ └── ms32.cpp │ │ │ ├── captures │ │ │ │ ├── captures.cpp │ │ │ │ ├── captures.expected │ │ │ │ ├── captures.ql │ │ │ │ ├── elements.expected │ │ │ │ ├── elements.ql │ │ │ │ └── end_pos.cpp │ │ │ └── cfg │ │ │ │ ├── cfg.expected │ │ │ │ ├── cfg.ql │ │ │ │ ├── lambda_cfg.cpp │ │ │ │ ├── reachability.expected │ │ │ │ ├── reachability.ql │ │ │ │ ├── stmts.expected │ │ │ │ └── stmts.ql │ │ ├── languages │ │ │ ├── a.c │ │ │ ├── b.cpp │ │ │ ├── exprs.expected │ │ │ ├── exprs.ql │ │ │ └── h.h │ │ ├── large_expressions │ │ │ ├── exprs.expected │ │ │ ├── exprs.ql │ │ │ └── test.c │ │ ├── literal_locations │ │ │ ├── duplicate_literal_locations.c │ │ │ ├── duplicate_literal_locations.expected │ │ │ ├── duplicate_literal_locations.ql │ │ │ ├── literal_locations.c │ │ │ ├── literal_locations.expected │ │ │ └── literal_locations.ql │ │ ├── literals │ │ │ ├── aggregate_literals │ │ │ │ ├── aggregate_literals.c │ │ │ │ ├── aggregate_literals_cpp.cpp │ │ │ │ ├── arrays.expected │ │ │ │ ├── arrays.ql │ │ │ │ ├── arrays_child_exprs.expected │ │ │ │ ├── arrays_child_exprs.ql │ │ │ │ ├── arrays_value_init.expected │ │ │ │ ├── arrays_value_init.ql │ │ │ │ ├── classes.expected │ │ │ │ ├── classes.ql │ │ │ │ ├── classes_child_exprs.expected │ │ │ │ ├── classes_child_exprs.ql │ │ │ │ ├── classes_value_init.expected │ │ │ │ └── classes_value_init.ql │ │ │ ├── aggregates │ │ │ │ ├── aggregates.c │ │ │ │ ├── count.expected │ │ │ │ └── count.ql │ │ │ ├── literals │ │ │ │ ├── literals.c │ │ │ │ ├── literals.expected │ │ │ │ └── literals.ql │ │ │ └── uuidof │ │ │ │ ├── uuidof.cpp │ │ │ │ ├── uuidof.expected │ │ │ │ └── uuidof.ql │ │ ├── locations │ │ │ ├── aggregate_literals │ │ │ │ ├── nested.cpp │ │ │ │ ├── nested.expected │ │ │ │ └── nested.ql │ │ │ ├── calls │ │ │ │ ├── calls.expected │ │ │ │ ├── calls.ql │ │ │ │ └── holder.cpp │ │ │ ├── constants │ │ │ │ ├── c.c │ │ │ │ ├── cpp.cpp │ │ │ │ ├── locations.expected │ │ │ │ └── locations.ql │ │ │ ├── enum_initialisers │ │ │ │ ├── enum_initialisers.c │ │ │ │ ├── enum_initialisers.expected │ │ │ │ └── enum_initialisers.ql │ │ │ ├── overloaded_operators │ │ │ │ ├── locations.expected │ │ │ │ ├── locations.ql │ │ │ │ └── test.cpp │ │ │ └── udt_implicit_conversions │ │ │ │ ├── four.cpp │ │ │ │ ├── udt_implicit_conversions.expected │ │ │ │ └── udt_implicit_conversions.ql │ │ ├── loops │ │ │ ├── loops.cpp │ │ │ ├── loops.expected │ │ │ ├── loops.ql │ │ │ └── rbfl.cpp │ │ ├── lossy_pointer_cast │ │ │ ├── lossy_pointer_cast.c │ │ │ ├── lossy_pointer_cast.expected │ │ │ └── lossy_pointer_cast.qlref │ │ ├── macros │ │ │ ├── affects │ │ │ │ ├── affects.expected │ │ │ │ ├── affects.ql │ │ │ │ └── test.c │ │ │ ├── arguments │ │ │ │ ├── ascii_nul.c │ │ │ │ ├── macro_arguments.expected │ │ │ │ ├── macro_arguments.ql │ │ │ │ ├── split1.h │ │ │ │ ├── split2.h │ │ │ │ ├── test.c │ │ │ │ └── top_and_nested.h │ │ │ ├── inmacroexpansion │ │ │ │ ├── inmacroexpansion.expected │ │ │ │ ├── inmacroexpansion.ql │ │ │ │ └── test.cpp │ │ │ ├── macros │ │ │ │ ├── affectedbymacroexpansion.expected │ │ │ │ ├── affectedbymacroexpansion.ql │ │ │ │ ├── inmacroexpansion.expected │ │ │ │ ├── inmacroexpansion.ql │ │ │ │ └── test.c │ │ │ └── redefines │ │ │ │ ├── ppds.expected │ │ │ │ ├── ppds.ql │ │ │ │ └── redefines.c │ │ ├── members │ │ │ ├── getters │ │ │ │ ├── members.expected │ │ │ │ ├── members.ql │ │ │ │ └── test.cpp │ │ │ ├── members │ │ │ │ ├── diags.expected │ │ │ │ ├── diags.ql │ │ │ │ ├── functions.expected │ │ │ │ ├── functions.ql │ │ │ │ └── non-existent.cpp │ │ │ ├── templates │ │ │ │ ├── c1.cpp │ │ │ │ ├── c2.cpp │ │ │ │ ├── h.h │ │ │ │ ├── members.expected │ │ │ │ └── members.ql │ │ │ └── this │ │ │ │ ├── test.cpp │ │ │ │ ├── this.expected │ │ │ │ └── this.ql │ │ ├── multiple_declarations │ │ │ ├── conditional_field │ │ │ │ ├── conditional_field.expected │ │ │ │ ├── conditional_field.ql │ │ │ │ ├── has_a.c │ │ │ │ ├── header.h │ │ │ │ └── no_a.c │ │ │ ├── functions │ │ │ │ ├── arity2.c │ │ │ │ ├── count_f.expected │ │ │ │ ├── count_f.ql │ │ │ │ ├── getParameter.expected │ │ │ │ ├── getParameter.ql │ │ │ │ ├── getTarget.expected │ │ │ │ ├── getTarget.ql │ │ │ │ ├── incompatible_decl.c │ │ │ │ └── main.c │ │ │ ├── macroinvocations │ │ │ │ ├── a.c │ │ │ │ ├── b.c │ │ │ │ ├── header.h │ │ │ │ ├── multiple_macro_invocations.expected │ │ │ │ └── multiple_macro_invocations.ql │ │ │ ├── preprocbranch │ │ │ │ ├── preprocbranch.cpp │ │ │ │ ├── preprocbranch.expected │ │ │ │ └── preprocbranch.ql │ │ │ └── variable_types │ │ │ │ ├── extracted_once.h │ │ │ │ ├── extracted_twice.h │ │ │ │ ├── file1.c │ │ │ │ ├── file2.c │ │ │ │ ├── varType.expected │ │ │ │ └── varType.ql │ │ ├── naked_attribute │ │ │ ├── naked.expected │ │ │ ├── naked.gnu.cpp │ │ │ ├── naked.ms.cpp │ │ │ └── naked.ql │ │ ├── name_qualifiers │ │ │ ├── NameQualifiers1.expected │ │ │ ├── NameQualifiers1.ql │ │ │ ├── NameQualifiers2.expected │ │ │ ├── NameQualifiers2.ql │ │ │ ├── inconsistency.cpp │ │ │ └── name_qualifiers.cpp │ │ ├── namespaces │ │ │ ├── namespaces │ │ │ │ ├── decls.expected │ │ │ │ ├── decls.ql │ │ │ │ ├── namequalifiable.expected │ │ │ │ ├── namequalifiable.ql │ │ │ │ ├── namespaces.cpp │ │ │ │ ├── namespaces.expected │ │ │ │ └── namespaces.ql │ │ │ └── same_name │ │ │ │ ├── decls.expected │ │ │ │ ├── decls.ql │ │ │ │ └── same_name.cpp │ │ ├── nested_functions │ │ │ └── nested_functions │ │ │ │ ├── namespaces.expected │ │ │ │ ├── namespaces.ql │ │ │ │ ├── nested_functions.c │ │ │ │ ├── nested_functions.cpp │ │ │ │ ├── nested_functions.expected │ │ │ │ ├── nested_functions.ql │ │ │ │ ├── var_uses.expected │ │ │ │ └── var_uses.ql │ │ ├── noexcept │ │ │ ├── copy_from_prototype │ │ │ │ ├── copy_from_prototype.cpp │ │ │ │ ├── copy_from_prototype.expected │ │ │ │ └── copy_from_prototype.ql │ │ │ └── noexcept │ │ │ │ ├── box.cpp │ │ │ │ ├── box.h │ │ │ │ ├── noexcept.cpp │ │ │ │ ├── noexcept_expr.expected │ │ │ │ ├── noexcept_expr.ql │ │ │ │ ├── noexcept_specifier.expected │ │ │ │ └── noexcept_specifier.ql │ │ ├── nulltermination │ │ │ ├── mayAddNullTerminator.expected │ │ │ ├── mayAddNullTerminator.ql │ │ │ ├── test.c │ │ │ ├── variableMustBeNullTerminated.expected │ │ │ └── variableMustBeNullTerminated.ql │ │ ├── numlines │ │ │ ├── numlines.cpp │ │ │ ├── numlines.expected │ │ │ └── numlines.ql │ │ ├── odasa2646 │ │ │ ├── cfi.expected │ │ │ ├── cfi.ql │ │ │ └── odasa2646.cpp │ │ ├── operators │ │ │ ├── operators.cpp │ │ │ ├── operators.expected │ │ │ └── operators.ql │ │ ├── opts │ │ │ ├── main.cpp │ │ │ ├── options │ │ │ ├── options.expected │ │ │ └── options.ql │ │ ├── padding │ │ │ ├── bitfields.c │ │ │ ├── cpp.cpp │ │ │ ├── padding.expected │ │ │ ├── padding.ql │ │ │ ├── size_asserts.h │ │ │ └── test.c │ │ ├── parameters │ │ │ ├── catch │ │ │ │ ├── catch.cpp │ │ │ │ ├── parameters.expected │ │ │ │ └── parameters.ql │ │ │ ├── parameters │ │ │ │ ├── Parameters1.expected │ │ │ │ ├── Parameters1.ql │ │ │ │ ├── Parameters2.expected │ │ │ │ ├── Parameters2.ql │ │ │ │ ├── Parameters3.expected │ │ │ │ ├── Parameters3.ql │ │ │ │ └── parameters.cpp │ │ │ └── toStrings │ │ │ │ ├── params.expected │ │ │ │ ├── params.ql │ │ │ │ └── test.c │ │ ├── permissive │ │ │ ├── accesses.expected │ │ │ ├── accesses.ql │ │ │ ├── calls.expected │ │ │ ├── calls.ql │ │ │ ├── diags.expected │ │ │ ├── diags.ql │ │ │ ├── non_permissive.cpp │ │ │ └── permissive.cpp │ │ ├── pod │ │ │ ├── isPOD.expected │ │ │ ├── isPOD.ql │ │ │ ├── isPOD03.expected │ │ │ ├── isPOD03.ql │ │ │ ├── test1.cpp │ │ │ ├── test2.cpp │ │ │ ├── test3.cpp │ │ │ ├── test4.cpp │ │ │ ├── test5.c │ │ │ └── test6.cpp │ │ ├── pointsto │ │ │ ├── address-of-assign │ │ │ │ ├── PointsToExpr.expected │ │ │ │ ├── PointsToExpr.ql │ │ │ │ └── test.cpp │ │ │ ├── arguments │ │ │ │ ├── Report.expected │ │ │ │ ├── Report.ql │ │ │ │ └── calls.c │ │ │ ├── basic │ │ │ │ ├── PointsToExpr.expected │ │ │ │ ├── PointsToExpr.ql │ │ │ │ ├── anythingPointsToExpr.expected │ │ │ │ ├── anythingPointsToExpr.ql │ │ │ │ ├── compoundEdge.expected │ │ │ │ ├── compoundEdge.ql │ │ │ │ ├── flow.expected │ │ │ │ ├── flow.ql │ │ │ │ ├── lvalue.expected │ │ │ │ ├── lvalue.ql │ │ │ │ ├── pointer.expected │ │ │ │ ├── pointer.ql │ │ │ │ ├── sets.expected │ │ │ │ ├── sets.ql │ │ │ │ └── test.cpp │ │ │ ├── more │ │ │ │ ├── PointsToExpr.expected │ │ │ │ ├── PointsToExpr.ql │ │ │ │ ├── aggregate_init.c │ │ │ │ ├── classes.cpp │ │ │ │ └── structs.c │ │ │ └── new-virtual │ │ │ │ ├── PointsToNew.expected │ │ │ │ ├── PointsToNew.ql │ │ │ │ └── test.cpp │ │ ├── predefines │ │ │ ├── expr.expected │ │ │ ├── expr.ql │ │ │ ├── localVariables.expected │ │ │ ├── localVariables.ql │ │ │ └── predefines.c │ │ ├── preprocessor │ │ │ ├── dependent_defs │ │ │ │ ├── a.c │ │ │ │ ├── b.c │ │ │ │ ├── block.expected │ │ │ │ ├── block.ql │ │ │ │ ├── getType.expected │ │ │ │ ├── getType.ql │ │ │ │ ├── h.h │ │ │ │ ├── init.expected │ │ │ │ └── init.ql │ │ │ ├── hashing │ │ │ │ ├── hashing │ │ │ │ │ ├── a.c │ │ │ │ │ ├── b.c │ │ │ │ │ ├── h.h │ │ │ │ │ ├── loca.c │ │ │ │ │ ├── locb.c │ │ │ │ │ ├── loch.h │ │ │ │ │ ├── lochx.h │ │ │ │ │ ├── macroAccess.expected │ │ │ │ │ └── macroAccess.ql │ │ │ │ └── undef │ │ │ │ │ ├── a.c │ │ │ │ │ ├── b.c │ │ │ │ │ ├── h.h │ │ │ │ │ ├── preproc.expected │ │ │ │ │ └── preproc.ql │ │ │ ├── include │ │ │ │ ├── guarded.h │ │ │ │ ├── include.expected │ │ │ │ ├── include.ql │ │ │ │ ├── main.cpp │ │ │ │ └── unguarded.h │ │ │ ├── linedirective │ │ │ │ ├── header.h │ │ │ │ ├── line.h │ │ │ │ ├── linedirective.expected │ │ │ │ ├── linedirective.ql │ │ │ │ ├── main.cpp │ │ │ │ └── system.h │ │ │ ├── macroinvocations │ │ │ │ ├── getanaffectedelement.expected │ │ │ │ ├── getanaffectedelement.ql │ │ │ │ ├── header1.h │ │ │ │ ├── header2.h │ │ │ │ ├── in_class.h │ │ │ │ ├── in_function.h │ │ │ │ ├── macroinvocations.cpp │ │ │ │ ├── macroinvocations.expected │ │ │ │ ├── macroinvocations.ql │ │ │ │ └── nested.h │ │ │ ├── pragma │ │ │ │ ├── pragma.expected │ │ │ │ ├── pragma.ql │ │ │ │ └── test.c │ │ │ └── preprocessor │ │ │ │ ├── a.h │ │ │ │ ├── more_headers │ │ │ │ └── a.h │ │ │ │ ├── pp.cpp │ │ │ │ ├── pp.h │ │ │ │ ├── preproc.expected │ │ │ │ └── preproc.ql │ │ ├── proxy_class │ │ │ ├── is_proxy_class_for.expected │ │ │ ├── is_proxy_class_for.ql │ │ │ ├── locations.expected │ │ │ ├── locations.ql │ │ │ └── proxy_class.cpp │ │ ├── ptr_to_member │ │ │ └── segfault │ │ │ │ ├── exprs.expected │ │ │ │ ├── exprs.ql │ │ │ │ └── segfault.cpp │ │ ├── qualifiers │ │ │ └── class-enum │ │ │ │ ├── decls.expected │ │ │ │ ├── decls.ql │ │ │ │ ├── expr.expected │ │ │ │ ├── expr.ql │ │ │ │ └── test.cpp │ │ ├── question_mark_colon │ │ │ ├── cfg.expected │ │ │ ├── cfg.ql │ │ │ ├── question_mark_colon.c │ │ │ ├── ternary.expected │ │ │ └── ternary.ql │ │ ├── range_based_for │ │ │ ├── range_based_for.expected │ │ │ ├── range_based_for.ql │ │ │ └── test.cpp │ │ ├── rangeanalysis │ │ │ ├── RangeSSA │ │ │ │ ├── RangeSsaCompleteness.expected │ │ │ │ ├── RangeSsaCompleteness.ql │ │ │ │ ├── RangeSsaCorrespondence.expected │ │ │ │ ├── RangeSsaCorrespondence.ql │ │ │ │ ├── RangeSsaDefUsePairs.expected │ │ │ │ ├── RangeSsaDefUsePairs.ql │ │ │ │ ├── RangeSsaDefinedByParameter.expected │ │ │ │ ├── RangeSsaDefinedByParameter.ql │ │ │ │ ├── RangeSsaDominance.expected │ │ │ │ ├── RangeSsaDominance.ql │ │ │ │ ├── RangeSsaPhiInputs.expected │ │ │ │ ├── RangeSsaPhiInputs.ql │ │ │ │ ├── RangeSsaUniqueness.expected │ │ │ │ ├── RangeSsaUniqueness.ql │ │ │ │ ├── test.c │ │ │ │ └── test.cpp │ │ │ └── SimpleRangeAnalysis │ │ │ │ ├── inline_assembly.c │ │ │ │ ├── lowerBound.expected │ │ │ │ ├── lowerBound.ql │ │ │ │ ├── minmax.c │ │ │ │ ├── ternaryLower.expected │ │ │ │ ├── ternaryLower.ql │ │ │ │ ├── ternaryUpper.expected │ │ │ │ ├── ternaryUpper.ql │ │ │ │ ├── test.c │ │ │ │ ├── test.cpp │ │ │ │ ├── upperBound.expected │ │ │ │ └── upperBound.ql │ │ ├── reachability │ │ │ ├── reachability.c │ │ │ ├── reachability.expected │ │ │ └── reachability.ql │ │ ├── rvalueCast │ │ │ ├── default.cpp │ │ │ ├── diag.expected │ │ │ ├── diag.ql │ │ │ ├── disabled.cpp │ │ │ ├── enabled.cpp │ │ │ ├── rvalueCast.expected │ │ │ └── rvalueCast.ql │ │ ├── rvaluerefs │ │ │ ├── rvaluerefs.cpp │ │ │ ├── xargs.expected │ │ │ └── xargs.ql │ │ ├── sal │ │ │ ├── sal.expected │ │ │ ├── sal.h │ │ │ ├── sal.ql │ │ │ └── test.cpp │ │ ├── scanf │ │ │ ├── ms.cpp │ │ │ ├── scanfFormatLiteral.expected │ │ │ ├── scanfFormatLiteral.ql │ │ │ ├── scanfFunctionCall.expected │ │ │ ├── scanfFunctionCall.ql │ │ │ └── test.c │ │ ├── scopes │ │ │ ├── includes │ │ │ │ ├── a.cpp │ │ │ │ ├── b.cpp │ │ │ │ ├── function_info.expected │ │ │ │ ├── function_info.ql │ │ │ │ ├── h.h │ │ │ │ ├── h2.h │ │ │ │ └── h3.h │ │ │ ├── parents │ │ │ │ ├── parents.cpp │ │ │ │ ├── parents.expected │ │ │ │ └── parents.ql │ │ │ └── scopes │ │ │ │ ├── Scopes1.expected │ │ │ │ ├── Scopes1.ql │ │ │ │ ├── Scopes2.expected │ │ │ │ ├── Scopes2.ql │ │ │ │ ├── Scopes3.expected │ │ │ │ ├── Scopes3.ql │ │ │ │ ├── Scopes4.expected │ │ │ │ ├── Scopes4.ql │ │ │ │ ├── Scopes5.expected │ │ │ │ ├── Scopes5.ql │ │ │ │ └── scopes.cpp │ │ ├── security │ │ │ └── encryption │ │ │ │ ├── test.cpp │ │ │ │ ├── test.expected │ │ │ │ └── test.ql │ │ ├── sideEffects │ │ │ ├── exprs │ │ │ │ ├── exprs.c │ │ │ │ ├── exprs.cpp │ │ │ │ ├── exprs.expected │ │ │ │ └── exprs.ql │ │ │ ├── functions │ │ │ │ ├── cpp.cpp │ │ │ │ ├── error.cpp │ │ │ │ ├── sideEffects.c │ │ │ │ ├── sideEffects.expected │ │ │ │ ├── sideEffects.ql │ │ │ │ └── templates.cpp │ │ │ └── stmts │ │ │ │ ├── stmts.c │ │ │ │ ├── stmts.cpp │ │ │ │ ├── stmts.expected │ │ │ │ └── stmts.ql │ │ ├── special_members │ │ │ ├── detect │ │ │ │ ├── detect.cpp │ │ │ │ ├── detect.expected │ │ │ │ └── detect.ql │ │ │ └── generated_copy │ │ │ │ ├── assign.expected │ │ │ │ ├── assign.ql │ │ │ │ ├── copy.cpp │ │ │ │ ├── ctor.expected │ │ │ │ ├── ctor.ql │ │ │ │ ├── functions.expected │ │ │ │ └── functions.ql │ │ ├── specifiers │ │ │ ├── Specifiers1.expected │ │ │ ├── Specifiers1.ql │ │ │ ├── Specifiers2.expected │ │ │ ├── Specifiers2.ql │ │ │ ├── Specifiers3.expected │ │ │ ├── Specifiers3.ql │ │ │ └── specifiers.cpp │ │ ├── specifiers2 │ │ │ ├── cpp20.cpp │ │ │ ├── specifiers2.c │ │ │ ├── specifiers2.expected │ │ │ ├── specifiers2.ql │ │ │ ├── specifiers2d.expected │ │ │ ├── specifiers2d.ql │ │ │ └── specifiers2pp.cpp │ │ ├── specifiers3 │ │ │ ├── structs.c │ │ │ ├── unspecified_member_var_types.expected │ │ │ └── unspecified_member_var_types.ql │ │ ├── static_assert │ │ │ ├── expr.expected │ │ │ ├── expr.ql │ │ │ ├── options │ │ │ ├── static_assert.cpp │ │ │ ├── static_assert.expected │ │ │ └── static_assert.ql │ │ ├── static_cast │ │ │ ├── expr.expected │ │ │ ├── expr.ql │ │ │ ├── ms.cpp │ │ │ └── options │ │ ├── std_layout │ │ │ ├── test.c │ │ │ ├── test.cpp │ │ │ ├── test.expected │ │ │ └── test.ql │ │ ├── stmt │ │ │ ├── break │ │ │ │ ├── break.expected │ │ │ │ ├── break.ql │ │ │ │ ├── continue.expected │ │ │ │ ├── continue.ql │ │ │ │ └── test.c │ │ │ ├── computed_goto │ │ │ │ ├── computedgoto.c │ │ │ │ ├── computedgoto.expected │ │ │ │ ├── computedgoto.ql │ │ │ │ ├── labelliteral.expected │ │ │ │ ├── labelliteral.ql │ │ │ │ ├── labelstmt.expected │ │ │ │ └── labelstmt.ql │ │ │ ├── generated_blocks │ │ │ │ ├── options │ │ │ │ ├── stmt.expected │ │ │ │ ├── stmt.ql │ │ │ │ └── test.c │ │ │ └── stmt │ │ │ │ ├── stmt.c │ │ │ │ ├── stmt.expected │ │ │ │ └── stmt.ql │ │ ├── stmt_expr │ │ │ ├── cfg.expected │ │ │ ├── cfg.ql │ │ │ └── stmt_expr.cpp │ │ ├── store_pointer_to_member │ │ │ ├── ast.expected │ │ │ ├── ast.ql │ │ │ ├── main.cpp │ │ │ └── options │ │ ├── string_analysis │ │ │ ├── StringAnalysis.expected │ │ │ ├── StringAnalysis.ql │ │ │ └── string_analysis.cpp │ │ ├── string_literals │ │ │ ├── string_literals.c │ │ │ ├── string_literals.expected │ │ │ └── string_literals.ql │ │ ├── string_literals_nul │ │ │ ├── string_literals_nul.c │ │ │ ├── string_literals_nul.expected │ │ │ └── string_literals_nul.ql │ │ ├── structs │ │ │ ├── compatible_c │ │ │ │ ├── a1.c │ │ │ │ ├── a2.c │ │ │ │ ├── b1.c │ │ │ │ ├── b2.c │ │ │ │ ├── c1_gnu.c │ │ │ │ ├── c2_gnu.c │ │ │ │ ├── compatible.expected │ │ │ │ ├── compatible.ql │ │ │ │ ├── compatible_types.expected │ │ │ │ └── compatible_types.ql │ │ │ ├── compatible_cpp │ │ │ │ ├── a1.cpp │ │ │ │ ├── a2.cpp │ │ │ │ ├── b1.cpp │ │ │ │ ├── b2.cpp │ │ │ │ ├── compatible.expected │ │ │ │ ├── compatible.ql │ │ │ │ ├── compatible_types.expected │ │ │ │ └── compatible_types.ql │ │ │ ├── compatible_routines │ │ │ │ ├── a.cpp │ │ │ │ ├── a.h │ │ │ │ ├── b.cpp │ │ │ │ ├── c.cpp │ │ │ │ ├── compatible.expected │ │ │ │ ├── compatible.ql │ │ │ │ └── s.h │ │ │ ├── compatible_variables │ │ │ │ ├── a.c │ │ │ │ ├── b.c │ │ │ │ ├── h.h │ │ │ │ ├── test.expected │ │ │ │ └── test.ql │ │ │ ├── incomplete_definition │ │ │ │ ├── a.h │ │ │ │ ├── pointerbasetype.expected │ │ │ │ ├── pointerbasetype.ql │ │ │ │ ├── x.cpp │ │ │ │ └── y.cpp │ │ │ ├── mutual_recursion │ │ │ │ ├── a.c │ │ │ │ ├── b.c │ │ │ │ ├── compatible_members.expected │ │ │ │ ├── compatible_members.ql │ │ │ │ ├── compatible_structs.expected │ │ │ │ └── compatible_structs.ql │ │ │ ├── qualified_names │ │ │ │ ├── c1.cpp │ │ │ │ ├── c2.cpp │ │ │ │ ├── decls.cpp │ │ │ │ ├── defs.cpp │ │ │ │ ├── header.h │ │ │ │ ├── pointerBaseType.expected │ │ │ │ └── pointerBaseType.ql │ │ │ └── structs │ │ │ │ ├── structs.c │ │ │ │ ├── structs.cpp │ │ │ │ ├── structs.expected │ │ │ │ └── structs.ql │ │ ├── sub_basic_blocks │ │ │ ├── cut.expected │ │ │ ├── cut.ql │ │ │ ├── getNode.expected │ │ │ ├── getNode.ql │ │ │ ├── no_cut.expected │ │ │ ├── no_cut.ql │ │ │ ├── sbb_test.qll │ │ │ └── test.c │ │ ├── switch │ │ │ ├── blocks.expected │ │ │ ├── blocks.ql │ │ │ ├── switch.c │ │ │ ├── switch.cpp │ │ │ ├── switch_gnu99.c │ │ │ ├── switchcase.expected │ │ │ ├── switchcase.ql │ │ │ ├── switchstmt.expected │ │ │ └── switchstmt.ql │ │ ├── switch_cfg │ │ │ ├── cfg.expected │ │ │ ├── cfg.ql │ │ │ └── switch.c │ │ ├── synchronization │ │ │ ├── mutextype.expected │ │ │ ├── mutextype.ql │ │ │ ├── synchronization.expected │ │ │ ├── synchronization.ql │ │ │ ├── test.cpp │ │ │ └── testoptions.qll │ │ ├── syntax-zoo │ │ │ ├── CPP-309.cpp │ │ │ ├── FunctionTryStmt.cpp │ │ │ ├── VacuousDestructorCall.cpp │ │ │ ├── abortingfunctions.cpp │ │ │ ├── aggregateinitializer.c │ │ │ ├── aliased_ssa_consistency.expected │ │ │ ├── aliased_ssa_consistency.qlref │ │ │ ├── allocators.cpp │ │ │ ├── array_delete.cpp │ │ │ ├── assignexpr.cpp │ │ │ ├── assume0.cpp │ │ │ ├── bad_asts.cpp │ │ │ ├── break_labels.c │ │ │ ├── builtin.c │ │ │ ├── builtin.cpp │ │ │ ├── condition_decl_int.cpp │ │ │ ├── condition_decls.cpp │ │ │ ├── conditional_destructors.cpp │ │ │ ├── constmemberaccess.cpp │ │ │ ├── constructorinitializer.cpp │ │ │ ├── cpp11.cpp │ │ │ ├── cpp17.cpp │ │ │ ├── dataflow-consistency.expected │ │ │ ├── dataflow-consistency.ql │ │ │ ├── dataflow-ir-consistency.expected │ │ │ ├── dataflow-ir-consistency.ql │ │ │ ├── defconstructornewexpr.cpp │ │ │ ├── defdestructordeleteexpr.cpp │ │ │ ├── deleteexpr.cpp │ │ │ ├── destructors.cpp │ │ │ ├── dostmt.c │ │ │ ├── duff.c │ │ │ ├── duff2.c │ │ │ ├── dummyblock.c │ │ │ ├── ellipsisexceptionhandler.cpp │ │ │ ├── emptyblock.c │ │ │ ├── enum.c │ │ │ ├── exceptionhandler.cpp │ │ │ ├── exprstmt.c │ │ │ ├── fieldaccess.cpp │ │ │ ├── forstmt.cpp │ │ │ ├── gotostmt.c │ │ │ ├── ifelsestmt.c │ │ │ ├── ifstmt.c │ │ │ ├── initializer.c │ │ │ ├── ir.cpp │ │ │ ├── landexpr.c │ │ │ ├── lorexpr.c │ │ │ ├── ltrbinopexpr.c │ │ │ ├── membercallexpr.cpp │ │ │ ├── membercallexpr_args.cpp │ │ │ ├── misc.c │ │ │ ├── modeled-functions.cpp │ │ │ ├── ms_assume.cpp │ │ │ ├── ms_try_except.cpp │ │ │ ├── ms_try_mix.cpp │ │ │ ├── newexpr.cpp │ │ │ ├── no_dynamic_init.cpp │ │ │ ├── nodefaultswitchstmt.c │ │ │ ├── nonmembercallexpr.c │ │ │ ├── nonmemberfp2callexpr.c │ │ │ ├── nonmemberfpcallexpr.c │ │ │ ├── ops.cpp │ │ │ ├── parameterinitializer.cpp │ │ │ ├── pmcallexpr.cpp │ │ │ ├── pointer_to_member.cpp │ │ │ ├── pruning.c │ │ │ ├── questionexpr.c │ │ │ ├── range_analysis.c │ │ │ ├── raw_consistency.expected │ │ │ ├── raw_consistency.qlref │ │ │ ├── rethrow_error.cpp │ │ │ ├── returnstmt.c │ │ │ ├── revsubscriptexpr.c │ │ │ ├── shortforstmt.cpp │ │ │ ├── statements.cpp │ │ │ ├── statements.h │ │ │ ├── static_init_templates.cpp │ │ │ ├── staticlocals.cpp │ │ │ ├── staticmembercallexpr.cpp │ │ │ ├── staticmembercallexpr_args.cpp │ │ │ ├── stmt_expr.cpp │ │ │ ├── stmt_in_type.cpp │ │ │ ├── stream_it.cpp │ │ │ ├── subscriptexpr.c │ │ │ ├── switchbody.c │ │ │ ├── switchstmt.c │ │ │ ├── test.c │ │ │ ├── tinyforstmt.c │ │ │ ├── try_catch.cpp │ │ │ ├── unaliased_ssa_consistency.expected │ │ │ ├── unaliased_ssa_consistency.qlref │ │ │ ├── unaryopexpr.c │ │ │ ├── vacuous_dtor_call.cpp │ │ │ ├── vla.c │ │ │ ├── void_bug.cpp │ │ │ ├── void_bug.h │ │ │ └── whilestmt.c │ │ ├── templates │ │ │ ├── CPP-172-template-members │ │ │ │ ├── test.cpp │ │ │ │ ├── test.expected │ │ │ │ └── test.ql │ │ │ ├── CPP-202 │ │ │ │ ├── template_args.expected │ │ │ │ ├── template_args.ql │ │ │ │ └── test.cpp │ │ │ ├── CPP-203 │ │ │ │ ├── decls.expected │ │ │ │ ├── decls.ql │ │ │ │ └── test.cpp │ │ │ ├── CPP-204 │ │ │ │ ├── element.expected │ │ │ │ ├── element.ql │ │ │ │ └── test.cpp │ │ │ ├── CPP-223 │ │ │ │ ├── decls.expected │ │ │ │ ├── decls.ql │ │ │ │ └── test.cpp │ │ │ ├── ambiguous_cctor │ │ │ │ ├── ambiguous_cctor.cpp │ │ │ │ ├── ambiguous_cctor.expected │ │ │ │ └── ambiguous_cctor.ql │ │ │ ├── bug │ │ │ │ ├── ODASA-6115.cpp │ │ │ │ ├── class.expected │ │ │ │ ├── class.ql │ │ │ │ └── test.cpp │ │ │ ├── decls │ │ │ │ ├── decls.cpp │ │ │ │ ├── decls.expected │ │ │ │ └── decls.ql │ │ │ ├── dependent_template_alias │ │ │ │ ├── test.cpp │ │ │ │ ├── test.expected │ │ │ │ └── test.ql │ │ │ ├── destructors │ │ │ │ ├── destructors.cpp │ │ │ │ ├── destructors.expected │ │ │ │ └── destructors.ql │ │ │ ├── diagnostics │ │ │ │ ├── diagnostics.cpp │ │ │ │ ├── diagnostics.expected │ │ │ │ ├── diagnostics.ql │ │ │ │ └── parameter_names.cpp │ │ │ ├── extern │ │ │ │ ├── elements.expected │ │ │ │ ├── elements.ql │ │ │ │ └── extern.cpp │ │ │ ├── friends │ │ │ │ ├── decls.expected │ │ │ │ ├── decls.ql │ │ │ │ └── friends.cpp │ │ │ ├── functions │ │ │ │ ├── functions.expected │ │ │ │ ├── functions.ql │ │ │ │ └── template_functions.cpp │ │ │ ├── incomplete_instantiations │ │ │ │ ├── a.cpp │ │ │ │ ├── b.cpp │ │ │ │ ├── h.h │ │ │ │ ├── test.expected │ │ │ │ └── test.ql │ │ │ ├── instantiation_directive │ │ │ │ ├── functions.expected │ │ │ │ ├── functions.ql │ │ │ │ └── test.cpp │ │ │ ├── instantiations_functions │ │ │ │ ├── elements.expected │ │ │ │ ├── elements.ql │ │ │ │ ├── header.h │ │ │ │ └── test.cpp │ │ │ ├── isfromtemplateinstantiation │ │ │ │ ├── instantiations.expected │ │ │ │ ├── instantiations.ql │ │ │ │ ├── isfromtemplateinstantiation.cpp │ │ │ │ ├── isfromtemplateinstantiation.expected │ │ │ │ ├── isfromtemplateinstantiation.ql │ │ │ │ ├── isfromuninstantiatedtemplate.expected │ │ │ │ ├── isfromuninstantiatedtemplate.ql │ │ │ │ ├── load.cpp │ │ │ │ ├── template_is_template.expected │ │ │ │ └── template_is_template.ql │ │ │ ├── nontype_instantiations │ │ │ │ ├── classes │ │ │ │ │ ├── test.cpp │ │ │ │ │ ├── test.expected │ │ │ │ │ └── test.ql │ │ │ │ ├── functions │ │ │ │ │ ├── test.cpp │ │ │ │ │ ├── test.expected │ │ │ │ │ └── test.ql │ │ │ │ └── general │ │ │ │ │ ├── test.cpp │ │ │ │ │ ├── test.expected │ │ │ │ │ └── test.ql │ │ │ ├── prototype_bodies │ │ │ │ ├── add_expr.expected │ │ │ │ ├── add_expr.ql │ │ │ │ ├── call_operands.expected │ │ │ │ ├── call_operands.ql │ │ │ │ ├── initialiser.expected │ │ │ │ ├── initialiser.ql │ │ │ │ ├── isdef_hasblock.expected │ │ │ │ ├── isdef_hasblock.ql │ │ │ │ └── main.cpp │ │ │ ├── segfault │ │ │ │ ├── segfault.cpp │ │ │ │ ├── vars.expected │ │ │ │ └── vars.ql │ │ │ ├── segfault2 │ │ │ │ ├── expr.expected │ │ │ │ ├── expr.ql │ │ │ │ └── test.cpp │ │ │ ├── switch │ │ │ │ ├── test.cpp │ │ │ │ ├── test.expected │ │ │ │ └── test.ql │ │ │ ├── type_instantiations │ │ │ │ ├── test.cpp │ │ │ │ ├── test.h │ │ │ │ ├── types.expected │ │ │ │ └── types.ql │ │ │ ├── typedefs │ │ │ │ ├── template_typedefs.cpp │ │ │ │ ├── template_typedefs.expected │ │ │ │ └── template_typedefs.ql │ │ │ └── variables │ │ │ │ ├── options │ │ │ │ ├── template_variables.expected │ │ │ │ ├── template_variables.ql │ │ │ │ └── variables.cpp │ │ ├── ti_compiler │ │ │ ├── function.expected │ │ │ ├── function.ql │ │ │ ├── options │ │ │ ├── ti.c │ │ │ ├── variable.expected │ │ │ └── variable.ql │ │ ├── type_sizes │ │ │ ├── a.cpp │ │ │ ├── options │ │ │ ├── type_sizes.expected │ │ │ └── type_sizes.ql │ │ ├── type_strings │ │ │ ├── exprs.expected │ │ │ ├── exprs.ql │ │ │ ├── ms_types.cpp │ │ │ ├── type_strings.cpp │ │ │ ├── type_strings.expected │ │ │ └── type_strings.ql │ │ ├── typedefs │ │ │ ├── ODASA-6095-A.hpp │ │ │ ├── ODASA-6095-B.hpp │ │ │ ├── ODASA-6095.cpp │ │ │ ├── ODASA-6095.expected │ │ │ ├── ODASA-6095.ql │ │ │ ├── Typedefs1.expected │ │ │ ├── Typedefs1.ql │ │ │ ├── Typedefs2.expected │ │ │ ├── Typedefs2.ql │ │ │ ├── Typedefs3.expected │ │ │ ├── Typedefs3.ql │ │ │ └── typedefs.cpp │ │ ├── typename │ │ │ ├── typename.cpp │ │ │ ├── typename.expected │ │ │ └── typename.ql │ │ ├── types │ │ │ ├── __wchar_t │ │ │ │ ├── ms.cpp │ │ │ │ ├── options │ │ │ │ ├── wchar_t.expected │ │ │ │ └── wchar_t.ql │ │ │ ├── alignof │ │ │ │ ├── alignof.cpp │ │ │ │ ├── alignof.expected │ │ │ │ └── alignof.ql │ │ │ ├── error │ │ │ │ ├── exprs.expected │ │ │ │ ├── exprs.ql │ │ │ │ └── test.cpp │ │ │ ├── integral_types │ │ │ │ ├── integral_type.expected │ │ │ │ ├── integral_type.ql │ │ │ │ └── integral_types.cpp │ │ │ ├── integral_types_ms │ │ │ │ ├── integral_type.expected │ │ │ │ ├── integral_type.qlref │ │ │ │ ├── integral_types.cpp │ │ │ │ ├── options │ │ │ │ ├── vars.expected │ │ │ │ └── vars.ql │ │ │ ├── pointertypes │ │ │ │ ├── options │ │ │ │ ├── pointertypes.c │ │ │ │ ├── pointertypes.expected │ │ │ │ └── pointertypes.ql │ │ │ ├── refersTo │ │ │ │ ├── refersTo.cpp │ │ │ │ ├── refersTo.expected │ │ │ │ └── refersTo.ql │ │ │ ├── scope │ │ │ │ ├── expr.expected │ │ │ │ ├── expr.ql │ │ │ │ ├── scope.c │ │ │ │ └── scope.cpp │ │ │ ├── segfault │ │ │ │ ├── segfault.c │ │ │ │ ├── vars.expected │ │ │ │ └── vars.ql │ │ │ ├── sizeof │ │ │ │ ├── sizeof.cpp │ │ │ │ ├── sizeof.expected │ │ │ │ └── sizeof.ql │ │ │ ├── typeid │ │ │ │ ├── typeid.cpp │ │ │ │ ├── typeid.expected │ │ │ │ └── typeid.ql │ │ │ ├── types │ │ │ │ ├── Types.expected │ │ │ │ ├── Types.ql │ │ │ │ ├── options │ │ │ │ └── types.cpp │ │ │ ├── unspecified │ │ │ │ ├── exprs.expected │ │ │ │ ├── exprs.ql │ │ │ │ └── test.cpp │ │ │ └── wchar_t_typedef │ │ │ │ ├── ms.c │ │ │ │ ├── options │ │ │ │ ├── wchar_t.expected │ │ │ │ └── wchar_t.ql │ │ ├── udl │ │ │ ├── options │ │ │ ├── udl.cpp │ │ │ ├── udl.expected │ │ │ └── udl.ql │ │ ├── unions │ │ │ ├── Unions1.expected │ │ │ ├── Unions1.ql │ │ │ ├── options │ │ │ └── unions.cpp │ │ ├── unnamed │ │ │ ├── elements.expected │ │ │ ├── elements.ql │ │ │ └── test.c │ │ ├── unspecified_type │ │ │ ├── types │ │ │ │ ├── types.cpp │ │ │ │ ├── unspecified_type.expected │ │ │ │ └── unspecified_type.ql │ │ │ └── unspecified_type │ │ │ │ ├── strip_top_level.expected │ │ │ │ ├── strip_top_level.ql │ │ │ │ ├── unspecified_type.cpp │ │ │ │ ├── unspecified_type.expected │ │ │ │ └── unspecified_type.ql │ │ ├── using-aliases │ │ │ ├── using-alias.cpp │ │ │ ├── using-alias.expected │ │ │ └── using-alias.ql │ │ ├── usings │ │ │ ├── Usings1.expected │ │ │ ├── Usings1.ql │ │ │ ├── templates.cpp │ │ │ └── usings.cpp │ │ ├── valuenumbering │ │ │ ├── GlobalValueNumbering │ │ │ │ ├── ast_gvn.expected │ │ │ │ ├── ast_gvn.ql │ │ │ │ ├── ast_ir_gvn.expected │ │ │ │ ├── ast_ir_gvn.ql │ │ │ │ ├── ast_uniqueness.expected │ │ │ │ ├── ast_uniqueness.ql │ │ │ │ ├── diff_ir_expr.expected │ │ │ │ ├── diff_ir_expr.ql │ │ │ │ ├── ir_gvn.expected │ │ │ │ ├── ir_gvn.ql │ │ │ │ ├── ir_uniqueness.expected │ │ │ │ ├── ir_uniqueness.ql │ │ │ │ └── test.cpp │ │ │ └── HashCons │ │ │ │ ├── HashCons.expected │ │ │ │ ├── HashCons.ql │ │ │ │ ├── Uniqueness.expected │ │ │ │ ├── Uniqueness.ql │ │ │ │ └── test.cpp │ │ ├── variables │ │ │ ├── constexpr │ │ │ │ ├── constexpr.cpp │ │ │ │ ├── constexpr.expected │ │ │ │ └── constexpr.ql │ │ │ ├── getanassignedvalue │ │ │ │ ├── getanassignedvalue.expected │ │ │ │ ├── getanassignedvalue.ql │ │ │ │ └── test.cpp │ │ │ ├── global │ │ │ │ ├── a.c │ │ │ │ ├── a.h │ │ │ │ ├── b.c │ │ │ │ ├── vardecl.expected │ │ │ │ ├── vardecl.ql │ │ │ │ ├── variables.expected │ │ │ │ └── variables.ql │ │ │ ├── thread_local │ │ │ │ ├── thread_local.cpp │ │ │ │ ├── thread_local.expected │ │ │ │ └── thread_local.ql │ │ │ └── variables │ │ │ │ ├── structs.expected │ │ │ │ ├── structs.ql │ │ │ │ ├── types.expected │ │ │ │ ├── types.ql │ │ │ │ ├── variable.expected │ │ │ │ ├── variable.ql │ │ │ │ └── variables.cpp │ │ ├── vector_sizes │ │ │ ├── code.c │ │ │ ├── test.expected │ │ │ └── test.ql │ │ ├── vector_types │ │ │ ├── builtin_ops.expected │ │ │ ├── builtin_ops.ql │ │ │ ├── builtins.expected │ │ │ ├── builtins.ql │ │ │ ├── fill.expected │ │ │ ├── fill.ql │ │ │ ├── options │ │ │ ├── subscripting.expected │ │ │ ├── subscripting.ql │ │ │ ├── variables.expected │ │ │ ├── variables.ql │ │ │ ├── vector_ops.expected │ │ │ ├── vector_ops.ql │ │ │ └── vector_types.cpp │ │ ├── virtual_functions │ │ │ ├── cfg │ │ │ │ ├── cfg.expected │ │ │ │ ├── cfg.ql │ │ │ │ └── virtual.cpp │ │ │ └── virtual_functions │ │ │ │ ├── VirtualFunctions4.expected │ │ │ │ ├── VirtualFunctions4.ql │ │ │ │ ├── classes.expected │ │ │ │ ├── classes.ql │ │ │ │ └── virtual_functions.cpp │ │ └── vla │ │ │ ├── blocks.expected │ │ │ ├── blocks.ql │ │ │ ├── cfg.expected │ │ │ ├── cfg.ql │ │ │ ├── declstmt.expected │ │ │ ├── declstmt.ql │ │ │ ├── type.expected │ │ │ ├── type.ql │ │ │ ├── variable.expected │ │ │ ├── variable.ql │ │ │ ├── vds.expected │ │ │ ├── vds.ql │ │ │ └── vla.c │ │ ├── qlpack.yml │ │ ├── queries.xml │ │ ├── query-tests │ │ ├── AlertSuppression │ │ │ ├── .gitattributes │ │ │ ├── AlertSuppression.expected │ │ │ ├── AlertSuppression.qlref │ │ │ ├── tst.c │ │ │ └── tstWindows.c │ │ ├── Architecture │ │ │ ├── FeatureEnvy │ │ │ │ ├── FeatureEnvy.expected │ │ │ │ ├── FeatureEnvy.qlref │ │ │ │ ├── a.cpp │ │ │ │ ├── b.cpp │ │ │ │ └── b.h │ │ │ ├── InappropriateIntimacy │ │ │ │ ├── InappropriateIntimacy.expected │ │ │ │ ├── InappropriateIntimacy.qlref │ │ │ │ ├── a.c │ │ │ │ ├── a.h │ │ │ │ ├── b.c │ │ │ │ ├── b.h │ │ │ │ ├── c.cpp │ │ │ │ ├── c.h │ │ │ │ ├── d.cpp │ │ │ │ └── d.h │ │ │ └── Refactoring Opportunities │ │ │ │ ├── ClassesWithManyFields │ │ │ │ ├── cwmf.cpp │ │ │ │ ├── cwmf.expected │ │ │ │ ├── cwmf.qlref │ │ │ │ ├── different_types.h │ │ │ │ ├── different_types_a.cpp │ │ │ │ └── different_types_b.cpp │ │ │ │ └── ComplexFunctions │ │ │ │ ├── ComplexFunctions.expected │ │ │ │ ├── ComplexFunctions.qlref │ │ │ │ └── complex.c │ │ ├── Best Practices │ │ │ ├── Hiding │ │ │ │ ├── DeclarationHidesParameter │ │ │ │ │ ├── DeclarationHidesParameter.expected │ │ │ │ │ ├── DeclarationHidesParameter.qlref │ │ │ │ │ ├── hiding.cpp │ │ │ │ │ └── hiding.h │ │ │ │ ├── DeclarationHidesVariable │ │ │ │ │ ├── DeclarationHidesVariable.expected │ │ │ │ │ ├── DeclarationHidesVariable.qlref │ │ │ │ │ └── hiding.cpp │ │ │ │ └── LocalVariableHidesGlobalVariable │ │ │ │ │ ├── DeclarationHidesVariable.expected │ │ │ │ │ ├── DeclarationHidesVariable.qlref │ │ │ │ │ ├── Hiding.c │ │ │ │ │ ├── LocalVariableHidesGlobalVariable.expected │ │ │ │ │ └── LocalVariableHidesGlobalVariable.qlref │ │ │ ├── Likely Errors │ │ │ │ ├── EmptyBlock │ │ │ │ │ ├── EmptyBlock.expected │ │ │ │ │ ├── EmptyBlock.qlref │ │ │ │ │ └── empty_block.cpp │ │ │ │ ├── OffsetUseBeforeRangeCheck │ │ │ │ │ ├── OffsetUseBeforeRangeCheck.expected │ │ │ │ │ ├── OffsetUseBeforeRangeCheck.qlref │ │ │ │ │ └── test.cpp │ │ │ │ └── Slicing │ │ │ │ │ ├── Slicing.expected │ │ │ │ │ ├── Slicing.qlref │ │ │ │ │ └── test.cpp │ │ │ ├── Magic Constants │ │ │ │ ├── Japanese Era │ │ │ │ │ ├── ConstructorOrMethodWithExactDate.cpp │ │ │ │ │ ├── JapaneseEraDate.expected │ │ │ │ │ ├── JapaneseEraDate.qlref │ │ │ │ │ └── StructWithExactDate.cpp │ │ │ │ ├── MagicConstantsNumbers │ │ │ │ │ ├── MagicConstantsNumbers.expected │ │ │ │ │ ├── MagicConstantsNumbers.qlref │ │ │ │ │ ├── a123.c │ │ │ │ │ ├── b123.c │ │ │ │ │ ├── c123.c │ │ │ │ │ ├── case.c │ │ │ │ │ ├── constants.h │ │ │ │ │ ├── d123.c │ │ │ │ │ ├── e123.c │ │ │ │ │ ├── functions.h │ │ │ │ │ ├── templates.cpp │ │ │ │ │ ├── test.c │ │ │ │ │ └── test.cpp │ │ │ │ └── MagicConstantsString │ │ │ │ │ ├── MagicConstantsString.expected │ │ │ │ │ ├── MagicConstantsString.qlref │ │ │ │ │ ├── constants.h │ │ │ │ │ ├── joining.cpp │ │ │ │ │ └── test.c │ │ │ ├── RuleOfTwo │ │ │ │ ├── RuleOfTwo.cpp │ │ │ │ ├── RuleOfTwo.expected │ │ │ │ └── RuleOfTwo.qlref │ │ │ ├── SloppyGlobal │ │ │ │ ├── SloppyGlobal.expected │ │ │ │ ├── SloppyGlobal.qlref │ │ │ │ └── main.cpp │ │ │ └── Unused Entities │ │ │ │ ├── UnusedIncludes │ │ │ │ ├── a.h │ │ │ │ ├── b.h │ │ │ │ ├── c.h │ │ │ │ ├── d.hpp │ │ │ │ ├── e.hpp │ │ │ │ ├── f.fwd.hpp │ │ │ │ ├── g │ │ │ │ ├── unusedIncludes.cpp │ │ │ │ ├── unusedIncludes.expected │ │ │ │ └── unusedIncludes.qlref │ │ │ │ ├── UnusedLocals │ │ │ │ ├── UnusedLocals.expected │ │ │ │ ├── UnusedLocals.qlref │ │ │ │ ├── code.c │ │ │ │ ├── code.cpp │ │ │ │ ├── code2.cpp │ │ │ │ └── errors.c │ │ │ │ ├── UnusedStaticFunctions │ │ │ │ ├── UnusedStaticFunctions.expected │ │ │ │ ├── UnusedStaticFunctions.qlref │ │ │ │ ├── unused_functions.c │ │ │ │ ├── unused_mut.c │ │ │ │ ├── unused_static_functions.cpp │ │ │ │ └── used_by_var_ref.c │ │ │ │ └── UnusedStaticVariables │ │ │ │ ├── UnusedStaticVariables.expected │ │ │ │ ├── UnusedStaticVariables.qlref │ │ │ │ └── test.cpp │ │ ├── Critical │ │ │ ├── DeadCodeFunction │ │ │ │ ├── DeadCodeFunction.expected │ │ │ │ ├── DeadCodeFunction.qlref │ │ │ │ └── test.cpp │ │ │ ├── DeadCodeGoto │ │ │ │ ├── DeadCodeGoto.expected │ │ │ │ ├── DeadCodeGoto.qlref │ │ │ │ └── test.cpp │ │ │ ├── FileClosed │ │ │ │ ├── FileMayNotBeClosed.expected │ │ │ │ ├── FileMayNotBeClosed.qlref │ │ │ │ ├── FileNeverClosed.expected │ │ │ │ ├── FileNeverClosed.qlref │ │ │ │ └── file.c │ │ │ ├── LargeParameter │ │ │ │ ├── LargeParameter.expected │ │ │ │ ├── LargeParameter.qlref │ │ │ │ └── test.cpp │ │ │ ├── MemoryFreed │ │ │ │ ├── MemoryFreed.expected │ │ │ │ ├── MemoryFreed.ql │ │ │ │ ├── MemoryMayNotBeFreed.expected │ │ │ │ ├── MemoryMayNotBeFreed.qlref │ │ │ │ ├── MemoryNeverFreed.expected │ │ │ │ ├── MemoryNeverFreed.qlref │ │ │ │ ├── my_auto_ptr.cpp │ │ │ │ ├── test.cpp │ │ │ │ └── virtual.cpp │ │ │ ├── MissingNullTest │ │ │ │ ├── MissingNullTest.expected │ │ │ │ ├── MissingNullTest.qlref │ │ │ │ └── test.cpp │ │ │ ├── NewFree │ │ │ │ ├── NewArrayDeleteMismatch.expected │ │ │ │ ├── NewArrayDeleteMismatch.qlref │ │ │ │ ├── NewDeleteArrayMismatch.expected │ │ │ │ ├── NewDeleteArrayMismatch.qlref │ │ │ │ ├── NewFreeMismatch.expected │ │ │ │ ├── NewFreeMismatch.qlref │ │ │ │ ├── options │ │ │ │ ├── test.cpp │ │ │ │ └── test2.cpp │ │ │ ├── OverflowCalculated │ │ │ │ ├── NoSpaceForZeroTerminator.expected │ │ │ │ ├── NoSpaceForZeroTerminator.qlref │ │ │ │ ├── OverflowCalculated.expected │ │ │ │ ├── OverflowCalculated.qlref │ │ │ │ ├── tests1.cpp │ │ │ │ ├── tests2.cpp │ │ │ │ └── tests3.cpp │ │ │ ├── OverflowStatic │ │ │ │ ├── OverflowStatic.expected │ │ │ │ ├── OverflowStatic.qlref │ │ │ │ ├── test.c │ │ │ │ ├── test.cpp │ │ │ │ └── test2.c │ │ │ ├── ReturnValueIgnored │ │ │ │ ├── ReturnValueIgnored.expected │ │ │ │ ├── ReturnValueIgnored.qlref │ │ │ │ └── test.cpp │ │ │ ├── SizeCheck │ │ │ │ ├── SizeCheck.expected │ │ │ │ ├── SizeCheck.qlref │ │ │ │ ├── SizeCheck2.expected │ │ │ │ ├── SizeCheck2.qlref │ │ │ │ ├── test.c │ │ │ │ └── test2.c │ │ │ └── UnsafeUseOfThis │ │ │ │ ├── UnsafeUseOfThis.expected │ │ │ │ ├── UnsafeUseOfThis.qlref │ │ │ │ └── test.cpp │ │ ├── Documentation │ │ │ ├── CommentedOutCode │ │ │ │ ├── CommentedOutCode.expected │ │ │ │ ├── CommentedOutCode.qlref │ │ │ │ ├── config.h │ │ │ │ ├── emacs_folding.c │ │ │ │ ├── test.c │ │ │ │ └── test2.cpp │ │ │ ├── DocumentApi │ │ │ │ ├── DocumentApi.expected │ │ │ │ ├── DocumentApi.qlref │ │ │ │ ├── comment_prototypes.c │ │ │ │ ├── comment_prototypes.h │ │ │ │ ├── comment_prototypes_caller1.c │ │ │ │ ├── comment_prototypes_caller2.c │ │ │ │ ├── definition.c │ │ │ │ ├── user1.c │ │ │ │ └── user2.c │ │ │ └── TodoComments │ │ │ │ ├── .gitattributes │ │ │ │ ├── FixmeComments.expected │ │ │ │ ├── FixmeComments.qlref │ │ │ │ ├── TodoComments.expected │ │ │ │ ├── TodoComments.qlref │ │ │ │ ├── todo.c │ │ │ │ └── todo_fixme.cpp │ │ ├── Header Cleanup │ │ │ └── Cleanup-DuplicateIncludeGuard │ │ │ │ ├── Cleanup-DuplicateIncludeGuard.expected │ │ │ │ ├── Cleanup-DuplicateIncludeGuard.qlref │ │ │ │ ├── header1.h │ │ │ │ ├── header2.h │ │ │ │ ├── header3.h │ │ │ │ ├── header4.h │ │ │ │ ├── header6.h │ │ │ │ ├── header7.h │ │ │ │ ├── main.c │ │ │ │ └── subfolder │ │ │ │ ├── header4.h │ │ │ │ └── header5.h │ │ ├── JPL_C │ │ │ ├── LOC-3 │ │ │ │ ├── Rule 13 │ │ │ │ │ ├── LimitedScopeFile │ │ │ │ │ │ ├── LimitedScopeFile.expected │ │ │ │ │ │ ├── LimitedScopeFile.qlref │ │ │ │ │ │ ├── file1.c │ │ │ │ │ │ ├── file1.h │ │ │ │ │ │ └── file2.c │ │ │ │ │ └── LimitedScopeFunction │ │ │ │ │ │ ├── LimitedScopeFunction.expected │ │ │ │ │ │ ├── LimitedScopeFunction.qlref │ │ │ │ │ │ ├── test.c │ │ │ │ │ │ └── test.h │ │ │ │ └── Rule 17 │ │ │ │ │ ├── BasicIntTypes.expected │ │ │ │ │ ├── BasicIntTypes.qlref │ │ │ │ │ └── test.c │ │ │ └── LOC-4 │ │ │ │ ├── Rule 29 │ │ │ │ └── NonConstFunctionPointer │ │ │ │ │ ├── NonConstFunctionPointer.expected │ │ │ │ │ ├── NonConstFunctionPointer.qlref │ │ │ │ │ └── test.c │ │ │ │ └── Rule 30 │ │ │ │ └── FunctionPointerConversions │ │ │ │ ├── FunctionPointerConversions.expected │ │ │ │ ├── FunctionPointerConversions.qlref │ │ │ │ └── test.c │ │ ├── Likely Bugs │ │ │ ├── AmbiguouslySignedBitField │ │ │ │ ├── AmbiguouslySignedBitField.expected │ │ │ │ ├── AmbiguouslySignedBitField.qlref │ │ │ │ └── test.cpp │ │ │ ├── Arithmetic │ │ │ │ ├── BadAdditionOverflowCheck │ │ │ │ │ ├── BadAdditionOverflowCheck.expected │ │ │ │ │ ├── BadAdditionOverflowCheck.qlref │ │ │ │ │ ├── ComparisonWithCancelingSubExpr.expected │ │ │ │ │ ├── ComparisonWithCancelingSubExpr.qlref │ │ │ │ │ ├── PointlessSelfComparison.expected │ │ │ │ │ ├── PointlessSelfComparison.qlref │ │ │ │ │ ├── SignedOverflowCheck.cpp │ │ │ │ │ ├── SignedOverflowCheck.expected │ │ │ │ │ ├── SignedOverflowCheck.qlref │ │ │ │ │ ├── templates.cpp │ │ │ │ │ └── test.cpp │ │ │ │ ├── BadCheckOdd │ │ │ │ │ ├── BadCheckOdd.expected │ │ │ │ │ ├── BadCheckOdd.qlref │ │ │ │ │ └── test.cpp │ │ │ │ ├── BitwiseSignCheck │ │ │ │ │ ├── BitwiseSignCheck.expected │ │ │ │ │ ├── BitwiseSignCheck.qlref │ │ │ │ │ └── bsc.cpp │ │ │ │ ├── ComparisonPrecedence │ │ │ │ │ ├── ComparisonPrecedence.expected │ │ │ │ │ ├── ComparisonPrecedence.qlref │ │ │ │ │ ├── template.cpp │ │ │ │ │ └── test.cpp │ │ │ │ ├── FloatComparison │ │ │ │ │ ├── FloatComparison.expected │ │ │ │ │ ├── FloatComparison.qlref │ │ │ │ │ └── c.c │ │ │ │ ├── IntMultToLong │ │ │ │ │ ├── IntMultToLong.c │ │ │ │ │ ├── IntMultToLong.cpp │ │ │ │ │ ├── IntMultToLong.expected │ │ │ │ │ └── IntMultToLong.qlref │ │ │ │ ├── PointlessComparison │ │ │ │ │ ├── ConstVirtual.cpp │ │ │ │ │ ├── PointlessComparison.c │ │ │ │ │ ├── PointlessComparison.cpp │ │ │ │ │ ├── PointlessComparison.expected │ │ │ │ │ ├── PointlessComparison.qlref │ │ │ │ │ ├── RegressionTests.cpp │ │ │ │ │ ├── Templates.cpp │ │ │ │ │ ├── UnsignedGEZero.expected │ │ │ │ │ └── UnsignedGEZero.qlref │ │ │ │ └── UnsignedGEZero │ │ │ │ │ ├── Templates.cpp │ │ │ │ │ ├── UnsignedGEZero.c │ │ │ │ │ ├── UnsignedGEZero.cpp │ │ │ │ │ ├── UnsignedGEZero.expected │ │ │ │ │ ├── UnsignedGEZero.qlref │ │ │ │ │ └── assert.h │ │ │ ├── ContinueInFalseLoop │ │ │ │ ├── ContinueInFalseLoop.expected │ │ │ │ ├── ContinueInFalseLoop.qlref │ │ │ │ └── test.cpp │ │ │ ├── Conversion │ │ │ │ ├── ArrayArgSizeMismatch │ │ │ │ │ ├── ArrayArgSizeMismatch.expected │ │ │ │ │ ├── ArrayArgSizeMismatch.qlref │ │ │ │ │ └── test.cpp │ │ │ │ ├── CastArrayPointerArithmetic │ │ │ │ │ ├── CastArrayPointerArithmetic.expected │ │ │ │ │ ├── CastArrayPointerArithmetic.qlref │ │ │ │ │ └── test.cpp │ │ │ │ ├── ImplicitDowncastFromBitfield │ │ │ │ │ ├── ImplicitDowncastFromBitfield.expected │ │ │ │ │ ├── ImplicitDowncastFromBitfield.qlref │ │ │ │ │ └── test.cpp │ │ │ │ └── LossyFunctionResultCast │ │ │ │ │ ├── ImplicitDowncastFromBitfield.expected │ │ │ │ │ ├── ImplicitDowncastFromBitfield.qlref │ │ │ │ │ └── test.cpp │ │ │ ├── Format │ │ │ │ ├── NonConstantFormat │ │ │ │ │ ├── NonConstantFormat.c │ │ │ │ │ ├── NonConstantFormat.expected │ │ │ │ │ ├── NonConstantFormat.qlref │ │ │ │ │ ├── a.c │ │ │ │ │ ├── b.c │ │ │ │ │ ├── nested.cpp │ │ │ │ │ ├── performance.c │ │ │ │ │ └── test.cpp │ │ │ │ ├── SnprintfOverflow │ │ │ │ │ ├── SnprintfOverflow.expected │ │ │ │ │ ├── SnprintfOverflow.qlref │ │ │ │ │ └── test.cpp │ │ │ │ ├── WrongNumberOfFormatArguments │ │ │ │ │ ├── TooManyFormatArguments.expected │ │ │ │ │ ├── TooManyFormatArguments.qlref │ │ │ │ │ ├── WrongNumberOfFormatArguments.expected │ │ │ │ │ ├── WrongNumberOfFormatArguments.qlref │ │ │ │ │ ├── a.c │ │ │ │ │ ├── b.c │ │ │ │ │ ├── c.c │ │ │ │ │ ├── custom_printf.cpp │ │ │ │ │ ├── macros.cpp │ │ │ │ │ └── test.c │ │ │ │ └── WrongTypeFormatArguments │ │ │ │ │ ├── Linux_mixed_byte_wprintf │ │ │ │ │ ├── WrongTypeFormatArguments.expected │ │ │ │ │ ├── WrongTypeFormatArguments.qlref │ │ │ │ │ ├── formattingFunction.expected │ │ │ │ │ ├── formattingFunction.ql │ │ │ │ │ └── tests.cpp │ │ │ │ │ ├── Linux_mixed_word_size │ │ │ │ │ ├── WrongTypeFormatArguments.expected │ │ │ │ │ ├── WrongTypeFormatArguments.qlref │ │ │ │ │ ├── tests_32.cpp │ │ │ │ │ └── tests_64.cpp │ │ │ │ │ ├── Linux_signed_chars │ │ │ │ │ ├── WrongTypeFormatArguments.expected │ │ │ │ │ ├── WrongTypeFormatArguments.qlref │ │ │ │ │ ├── a.c │ │ │ │ │ ├── b.c │ │ │ │ │ ├── common.h │ │ │ │ │ ├── format.h │ │ │ │ │ ├── linux.cpp │ │ │ │ │ ├── linux_c.c │ │ │ │ │ ├── options │ │ │ │ │ ├── pri_macros.h │ │ │ │ │ ├── printf1.h │ │ │ │ │ ├── real_world.h │ │ │ │ │ └── wide_string.h │ │ │ │ │ ├── Linux_two_byte_wprintf │ │ │ │ │ ├── WrongTypeFormatArguments.expected │ │ │ │ │ ├── WrongTypeFormatArguments.qlref │ │ │ │ │ ├── formattingFunction.expected │ │ │ │ │ ├── formattingFunction.ql │ │ │ │ │ └── printf.cpp │ │ │ │ │ ├── Linux_unsigned_chars │ │ │ │ │ ├── WrongTypeFormatArguments.expected │ │ │ │ │ ├── WrongTypeFormatArguments.qlref │ │ │ │ │ ├── common.h │ │ │ │ │ ├── format.h │ │ │ │ │ ├── formattingFunction.expected │ │ │ │ │ ├── formattingFunction.ql │ │ │ │ │ ├── linux.cpp │ │ │ │ │ ├── options │ │ │ │ │ ├── pri_macros.h │ │ │ │ │ ├── printf1.h │ │ │ │ │ ├── real_world.h │ │ │ │ │ └── wide_string.h │ │ │ │ │ ├── Microsoft │ │ │ │ │ ├── WrongTypeFormatArguments.expected │ │ │ │ │ ├── WrongTypeFormatArguments.qlref │ │ │ │ │ ├── common.h │ │ │ │ │ ├── format.h │ │ │ │ │ ├── ms.cpp │ │ │ │ │ ├── options │ │ │ │ │ ├── pri_macros.h │ │ │ │ │ ├── printf1.h │ │ │ │ │ ├── real_world.h │ │ │ │ │ └── wide_string.h │ │ │ │ │ └── Microsoft_no_wchar │ │ │ │ │ ├── WrongTypeFormatArguments.expected │ │ │ │ │ ├── WrongTypeFormatArguments.qlref │ │ │ │ │ ├── common.h │ │ │ │ │ ├── format.h │ │ │ │ │ ├── ms_no_wchar.cpp │ │ │ │ │ ├── options │ │ │ │ │ ├── pri_macros.h │ │ │ │ │ ├── printf1.h │ │ │ │ │ ├── real_world.h │ │ │ │ │ └── wide_string.h │ │ │ ├── InconsistentCheckReturnNull │ │ │ │ ├── InconsistentCheckReturnNull.expected │ │ │ │ ├── InconsistentCheckReturnNull.qlref │ │ │ │ └── test.c │ │ │ ├── Leap Year │ │ │ │ ├── Adding365DaysPerYear │ │ │ │ │ ├── Adding365daysPerYear.expected │ │ │ │ │ ├── Adding365daysPerYear.qlref │ │ │ │ │ └── test.cpp │ │ │ │ ├── UncheckedLeapYearAfterYearModification │ │ │ │ │ ├── UncheckedLeapYearAfterYearModification.expected │ │ │ │ │ ├── UncheckedLeapYearAfterYearModification.qlref │ │ │ │ │ ├── UncheckedReturnValueForTimeFunctions.expected │ │ │ │ │ ├── UncheckedReturnValueForTimeFunctions.qlref │ │ │ │ │ └── test.cpp │ │ │ │ └── UnsafeArrayForDaysOfYear │ │ │ │ │ ├── UnsafeArrayForDaysOfYear.expected │ │ │ │ │ ├── UnsafeArrayForDaysOfYear.qlref │ │ │ │ │ └── test.cpp │ │ │ ├── Likely Typos │ │ │ │ ├── AssignWhereCompareMeant │ │ │ │ │ ├── AssignWhereCompareMeant.expected │ │ │ │ │ ├── AssignWhereCompareMeant.qlref │ │ │ │ │ └── test.cpp │ │ │ │ ├── CompareWhereAssignMeant │ │ │ │ │ ├── CompareWhereAssignMeant.expected │ │ │ │ │ ├── CompareWhereAssignMeant.qlref │ │ │ │ │ ├── ExprHasNoEffect.expected │ │ │ │ │ ├── ExprHasNoEffect.qlref │ │ │ │ │ └── test.cpp │ │ │ │ ├── DubiousNullCheck │ │ │ │ │ ├── DubiousNullCheck.cpp │ │ │ │ │ ├── DubiousNullCheck.expected │ │ │ │ │ └── DubiousNullCheck.qlref │ │ │ │ ├── ExprHasNoEffect │ │ │ │ │ ├── ExprHasNoEffect.expected │ │ │ │ │ ├── ExprHasNoEffect.qlref │ │ │ │ │ ├── calls.cpp │ │ │ │ │ ├── expr.cpp │ │ │ │ │ ├── macros.c │ │ │ │ │ ├── preproc.c │ │ │ │ │ ├── template.cpp │ │ │ │ │ ├── templatey.cpp │ │ │ │ │ ├── test.c │ │ │ │ │ ├── test.cpp │ │ │ │ │ ├── volatile.c │ │ │ │ │ └── weak.c │ │ │ │ ├── IncorrectNotOperatorUsage │ │ │ │ │ ├── IncorrectNotOperatorUsage.c │ │ │ │ │ ├── IncorrectNotOperatorUsage.cpp │ │ │ │ │ ├── IncorrectNotOperatorUsage.expected │ │ │ │ │ └── IncorrectNotOperatorUsage.qlref │ │ │ │ ├── ShortCircuitBitMask │ │ │ │ │ ├── ShortCircuitBitMask.expected │ │ │ │ │ ├── ShortCircuitBitMask.qlref │ │ │ │ │ └── big_ints.cpp │ │ │ │ ├── UsingStrcpyAsBoolean │ │ │ │ │ ├── UsingStrcpyAsBoolean.expected │ │ │ │ │ ├── UsingStrcpyAsBoolean.qlref │ │ │ │ │ ├── test.c │ │ │ │ │ └── test.cpp │ │ │ │ └── inconsistentLoopDirection │ │ │ │ │ ├── inconsistentLoopDirection.c │ │ │ │ │ ├── inconsistentLoopDirection.cpp │ │ │ │ │ ├── inconsistentLoopDirection.expected │ │ │ │ │ └── inconsistentLoopDirection.qlref │ │ │ ├── Memory Management │ │ │ │ ├── AllocaInLoop │ │ │ │ │ ├── AllocaInLoop.expected │ │ │ │ │ ├── AllocaInLoop.qlref │ │ │ │ │ ├── AllocaInLoop1.cpp │ │ │ │ │ ├── AllocaInLoop1ms.cpp │ │ │ │ │ ├── AllocaInLoop2.c │ │ │ │ │ ├── AllocaInLoop3.cpp │ │ │ │ │ ├── BoundedLoop.cpp │ │ │ │ │ └── malloc.h │ │ │ │ ├── NtohlArrayNoBound │ │ │ │ │ ├── NtohlArrayNoBound.expected │ │ │ │ │ ├── NtohlArrayNoBound.qlref │ │ │ │ │ └── test.cpp │ │ │ │ ├── Padding │ │ │ │ │ ├── More64BitWaste │ │ │ │ │ │ ├── More64BitWaste.expected │ │ │ │ │ │ ├── More64BitWaste.qlref │ │ │ │ │ │ └── test.cpp │ │ │ │ │ ├── NonPortablePrintf │ │ │ │ │ │ ├── NonPortablePrintf.expected │ │ │ │ │ │ ├── NonPortablePrintf.qlref │ │ │ │ │ │ └── test.cpp │ │ │ │ │ └── Suboptimal64BitType │ │ │ │ │ │ ├── Suboptimal64BitType.expected │ │ │ │ │ │ ├── Suboptimal64BitType.qlref │ │ │ │ │ │ └── types.c │ │ │ │ ├── PointerOverflow │ │ │ │ │ ├── PointerOverflow.expected │ │ │ │ │ ├── PointerOverflow.qlref │ │ │ │ │ ├── no_strict_overflow.c │ │ │ │ │ └── test.cpp │ │ │ │ ├── ReturnCstrOfLocalStdString │ │ │ │ │ ├── ReturnCstrOfLocalStdString.expected │ │ │ │ │ ├── ReturnCstrOfLocalStdString.qlref │ │ │ │ │ └── test.cpp │ │ │ │ ├── ReturnStackAllocatedMemory │ │ │ │ │ ├── ReturnStackAllocatedMemory.expected │ │ │ │ │ ├── ReturnStackAllocatedMemory.qlref │ │ │ │ │ └── test.cpp │ │ │ │ ├── StackAddressEscapes │ │ │ │ │ ├── ArrayTypeTest.cpp │ │ │ │ │ ├── ArrayTypeTest.expected │ │ │ │ │ ├── ArrayTypeTest.ql │ │ │ │ │ ├── StackAddressEscapes.expected │ │ │ │ │ ├── StackAddressEscapes.qlref │ │ │ │ │ ├── manager.cpp │ │ │ │ │ └── test.cpp │ │ │ │ ├── StrncpyFlippedArgs │ │ │ │ │ ├── StrncpyFlippedArgs.expected │ │ │ │ │ ├── StrncpyFlippedArgs.qlref │ │ │ │ │ ├── test.c │ │ │ │ │ └── test.cpp │ │ │ │ ├── SuspiciousCallToMemset │ │ │ │ │ ├── SuspiciousCallToMemset.expected │ │ │ │ │ ├── SuspiciousCallToMemset.qlref │ │ │ │ │ ├── doc_tests.c │ │ │ │ │ ├── extractor_tests.c │ │ │ │ │ └── test.cpp │ │ │ │ ├── SuspiciousCallToStrncat │ │ │ │ │ ├── SuspiciousCallToStrncat.expected │ │ │ │ │ ├── SuspiciousCallToStrncat.qlref │ │ │ │ │ └── test.c │ │ │ │ ├── SuspiciousSizeof │ │ │ │ │ ├── SuspiciousSizeof.expected │ │ │ │ │ ├── SuspiciousSizeof.qlref │ │ │ │ │ └── test.cpp │ │ │ │ └── UnsafeUseOfStrcat │ │ │ │ │ ├── strcat.c │ │ │ │ │ ├── strcat.expected │ │ │ │ │ └── strcat.qlref │ │ │ ├── OO │ │ │ │ ├── IncorrectConstructorDelegation │ │ │ │ │ ├── IncorrectConstructorDelegation.expected │ │ │ │ │ ├── IncorrectConstructorDelegation.qlref │ │ │ │ │ └── test.cpp │ │ │ │ ├── NonVirtualDestructorInBaseClass │ │ │ │ │ ├── NonVirtualDestructorInBaseClass.cpp │ │ │ │ │ ├── NonVirtualDestructorInBaseClass.expected │ │ │ │ │ └── NonVirtualDestructorInBaseClass.qlref │ │ │ │ └── ThrowInDestructor │ │ │ │ │ ├── ThrowInDestructor.expected │ │ │ │ │ ├── ThrowInDestructor.qlref │ │ │ │ │ └── test.cpp │ │ │ ├── Protocols │ │ │ │ ├── TlsSettingsMisconfiguration.expected │ │ │ │ ├── TlsSettingsMisconfiguration.qlref │ │ │ │ ├── UseOfDeprecatedHardcodedProtocol.expected │ │ │ │ ├── UseOfDeprecatedHardcodedProtocol.qlref │ │ │ │ ├── asio │ │ │ │ │ └── boost_simulation.hpp │ │ │ │ ├── test.cpp │ │ │ │ ├── test2.cpp │ │ │ │ └── test3.cpp │ │ │ ├── RedundantNullCheckSimple │ │ │ │ ├── RedundantNullCheckSimple.cpp │ │ │ │ ├── RedundantNullCheckSimple.expected │ │ │ │ └── RedundantNullCheckSimple.qlref │ │ │ ├── ReturnConstType │ │ │ │ ├── ReturnConstType.expected │ │ │ │ ├── ReturnConstType.qlref │ │ │ │ └── test.cpp │ │ │ ├── ReturnConstTypeMember │ │ │ │ ├── ReturnConstTypeMember.expected │ │ │ │ ├── ReturnConstTypeMember.qlref │ │ │ │ ├── templates.cpp │ │ │ │ └── test.cpp │ │ │ ├── ShortLoopVarName │ │ │ │ ├── ShortLoopVarName.cpp │ │ │ │ ├── ShortLoopVarName.expected │ │ │ │ └── ShortLoopVarName.qlref │ │ │ ├── Underspecified Functions │ │ │ │ ├── ImplicitFunctionDeclaration.expected │ │ │ │ ├── ImplicitFunctionDeclaration.qlref │ │ │ │ ├── MistypedFunctionArguments.expected │ │ │ │ ├── MistypedFunctionArguments.qlref │ │ │ │ ├── TooFewArguments.expected │ │ │ │ ├── TooFewArguments.qlref │ │ │ │ ├── TooManyArguments.expected │ │ │ │ ├── TooManyArguments.qlref │ │ │ │ ├── test.c │ │ │ │ ├── test.cpp │ │ │ │ └── test2.c │ │ │ └── UseInOwnInitializer │ │ │ │ ├── UseInOwnInitializer.expected │ │ │ │ ├── UseInOwnInitializer.qlref │ │ │ │ └── test.cpp │ │ ├── Metrics │ │ │ ├── Dependencies │ │ │ │ ├── ExternalDependencies.expected │ │ │ │ ├── ExternalDependencies.ql │ │ │ │ ├── ExternalDependenciesSourceLinks.expected │ │ │ │ ├── ExternalDependenciesSourceLinks.ql │ │ │ │ ├── LibA │ │ │ │ │ └── liba.h │ │ │ │ ├── LibB │ │ │ │ │ ├── libb.h │ │ │ │ │ └── libb_internal.h │ │ │ │ ├── LibC │ │ │ │ │ └── libc.h │ │ │ │ ├── LibD │ │ │ │ │ └── libd.h │ │ │ │ ├── TestPackage.qll │ │ │ │ ├── dependencies.expected │ │ │ │ ├── dependencies.ql │ │ │ │ ├── include.h │ │ │ │ └── main.cpp │ │ │ └── Functions │ │ │ │ ├── FunLinesOfCode.expected │ │ │ │ ├── FunLinesOfCode.qlref │ │ │ │ ├── FunLinesOfComments.expected │ │ │ │ ├── FunLinesOfComments.qlref │ │ │ │ ├── FunNumberOfCalls.expected │ │ │ │ ├── FunNumberOfCalls.qlref │ │ │ │ ├── FunNumberOfParameters.expected │ │ │ │ ├── FunNumberOfParameters.qlref │ │ │ │ ├── FunNumberOfStatements.expected │ │ │ │ ├── FunNumberOfStatements.qlref │ │ │ │ └── functions.cpp │ │ ├── Power of 10 │ │ │ └── Rule 2 │ │ │ │ ├── BoundedLoopIterations.expected │ │ │ │ ├── BoundedLoopIterations.qlref │ │ │ │ └── loops.cpp │ │ ├── Security │ │ │ └── CWE │ │ │ │ ├── CWE-014 │ │ │ │ ├── MemsetMayBeDeleted.expected │ │ │ │ ├── MemsetMayBeDeleted.qlref │ │ │ │ ├── test.c │ │ │ │ └── test.cpp │ │ │ │ ├── CWE-022 │ │ │ │ └── semmle │ │ │ │ │ └── tests │ │ │ │ │ ├── TaintedPath.expected │ │ │ │ │ ├── TaintedPath.qlref │ │ │ │ │ ├── stdlib.h │ │ │ │ │ └── test.c │ │ │ │ ├── CWE-078 │ │ │ │ └── semmle │ │ │ │ │ └── ExecTainted │ │ │ │ │ ├── ExecTainted.expected │ │ │ │ │ ├── ExecTainted.qlref │ │ │ │ │ └── test.c │ │ │ │ ├── CWE-079 │ │ │ │ └── semmle │ │ │ │ │ └── CgiXss │ │ │ │ │ ├── CgiXss.expected │ │ │ │ │ ├── CgiXss.qlref │ │ │ │ │ └── search.c │ │ │ │ ├── CWE-089 │ │ │ │ └── SqlTainted │ │ │ │ │ ├── SqlTainted.expected │ │ │ │ │ ├── SqlTainted.qlref │ │ │ │ │ └── test.c │ │ │ │ ├── CWE-114 │ │ │ │ └── semmle │ │ │ │ │ └── UncontrolledProcessOperation │ │ │ │ │ ├── UncontrolledProcessOperation.expected │ │ │ │ │ ├── UncontrolledProcessOperation.qlref │ │ │ │ │ └── test.cpp │ │ │ │ ├── CWE-119 │ │ │ │ └── semmle │ │ │ │ │ └── tests │ │ │ │ │ ├── BadlyBoundedWrite.expected │ │ │ │ │ ├── BadlyBoundedWrite.qlref │ │ │ │ │ ├── OffsetUseBeforeRangeCheck.expected │ │ │ │ │ ├── OffsetUseBeforeRangeCheck.qlref │ │ │ │ │ ├── OverflowBuffer.expected │ │ │ │ │ ├── OverflowBuffer.qlref │ │ │ │ │ ├── OverflowDestination.expected │ │ │ │ │ ├── OverflowDestination.qlref │ │ │ │ │ ├── OverflowStatic.expected │ │ │ │ │ ├── OverflowStatic.qlref │ │ │ │ │ ├── OverrunWrite.expected │ │ │ │ │ ├── OverrunWrite.qlref │ │ │ │ │ ├── OverrunWriteFloat.expected │ │ │ │ │ ├── OverrunWriteFloat.qlref │ │ │ │ │ ├── StrncpyFlippedArgs.expected │ │ │ │ │ ├── StrncpyFlippedArgs.qlref │ │ │ │ │ ├── UnboundedWrite.expected │ │ │ │ │ ├── UnboundedWrite.qlref │ │ │ │ │ ├── overflowdestination.cpp │ │ │ │ │ ├── tests.cpp │ │ │ │ │ ├── tests_restrict.c │ │ │ │ │ ├── unions.cpp │ │ │ │ │ ├── var_size_struct.cpp │ │ │ │ │ ├── varsize.expected │ │ │ │ │ └── varsize.ql │ │ │ │ ├── CWE-120 │ │ │ │ └── semmle │ │ │ │ │ ├── UnsafeUseOfStrcat │ │ │ │ │ ├── UnsafeUseOfStrcat.expected │ │ │ │ │ ├── UnsafeUseOfStrcat.qlref │ │ │ │ │ └── test.c │ │ │ │ │ └── tests │ │ │ │ │ ├── BadlyBoundedWrite.expected │ │ │ │ │ ├── BadlyBoundedWrite.qlref │ │ │ │ │ ├── OverrunWrite.expected │ │ │ │ │ ├── OverrunWrite.qlref │ │ │ │ │ ├── OverrunWriteFloat.expected │ │ │ │ │ ├── OverrunWriteFloat.qlref │ │ │ │ │ ├── UnboundedWrite.expected │ │ │ │ │ ├── UnboundedWrite.qlref │ │ │ │ │ ├── tests.c │ │ │ │ │ ├── tests2.cpp │ │ │ │ │ ├── unions.c │ │ │ │ │ └── var_size_struct.cpp │ │ │ │ ├── CWE-121 │ │ │ │ └── semmle │ │ │ │ │ └── tests │ │ │ │ │ ├── UnterminatedVarargsCall.expected │ │ │ │ │ ├── UnterminatedVarargsCall.qlref │ │ │ │ │ ├── more_tests.cpp │ │ │ │ │ └── tests.c │ │ │ │ ├── CWE-129 │ │ │ │ └── semmle │ │ │ │ │ └── ImproperArrayIndexValidation │ │ │ │ │ ├── ImproperArrayIndexValidation.expected │ │ │ │ │ ├── ImproperArrayIndexValidation.qlref │ │ │ │ │ └── test1.c │ │ │ │ ├── CWE-131 │ │ │ │ └── semmle │ │ │ │ │ └── NoSpaceForZeroTerminator │ │ │ │ │ ├── NoSpaceForZeroTerminator.expected │ │ │ │ │ ├── NoSpaceForZeroTerminator.qlref │ │ │ │ │ ├── test.c │ │ │ │ │ ├── test.cpp │ │ │ │ │ └── test2.cpp │ │ │ │ ├── CWE-134 │ │ │ │ └── semmle │ │ │ │ │ ├── argv │ │ │ │ │ ├── argvLocal.c │ │ │ │ │ ├── argvLocal.expected │ │ │ │ │ └── argvLocal.qlref │ │ │ │ │ ├── consts │ │ │ │ │ ├── NonConstantFormat.expected │ │ │ │ │ ├── NonConstantFormat.qlref │ │ │ │ │ └── consts.cpp │ │ │ │ │ ├── funcs │ │ │ │ │ ├── funcsLocal.c │ │ │ │ │ ├── funcsLocal.expected │ │ │ │ │ └── funcsLocal.qlref │ │ │ │ │ ├── globalVars │ │ │ │ │ ├── UncontrolledFormatString.expected │ │ │ │ │ ├── UncontrolledFormatString.qlref │ │ │ │ │ ├── UncontrolledFormatStringThroughGlobalVar.expected │ │ │ │ │ ├── UncontrolledFormatStringThroughGlobalVar.qlref │ │ │ │ │ └── globalVars.c │ │ │ │ │ └── ifs │ │ │ │ │ ├── ifs.c │ │ │ │ │ ├── ifs.expected │ │ │ │ │ └── ifs.qlref │ │ │ │ ├── CWE-190 │ │ │ │ └── semmle │ │ │ │ │ ├── ComparisonWithWiderType │ │ │ │ │ ├── ComparisonWithWiderType.expected │ │ │ │ │ ├── ComparisonWithWiderType.qlref │ │ │ │ │ ├── test.c │ │ │ │ │ └── test2.c │ │ │ │ │ ├── TaintedAllocationSize │ │ │ │ │ ├── TaintedAllocationSize.expected │ │ │ │ │ ├── TaintedAllocationSize.qlref │ │ │ │ │ ├── field_conflation.c │ │ │ │ │ └── test.cpp │ │ │ │ │ ├── extreme │ │ │ │ │ ├── ArithmeticWithExtremeValues.expected │ │ │ │ │ ├── ArithmeticWithExtremeValues.qlref │ │ │ │ │ └── test.c │ │ │ │ │ ├── system_header │ │ │ │ │ └── system_header.h │ │ │ │ │ ├── tainted │ │ │ │ │ ├── ArithmeticTainted.expected │ │ │ │ │ ├── ArithmeticTainted.qlref │ │ │ │ │ ├── IntegerOverflowTainted.expected │ │ │ │ │ ├── IntegerOverflowTainted.qlref │ │ │ │ │ ├── queries.xml │ │ │ │ │ ├── test.c │ │ │ │ │ ├── test2.cpp │ │ │ │ │ ├── test3.c │ │ │ │ │ ├── test4.cpp │ │ │ │ │ ├── test5.cpp │ │ │ │ │ └── test6.cpp │ │ │ │ │ └── uncontrolled │ │ │ │ │ ├── ArithmeticUncontrolled.expected │ │ │ │ │ ├── ArithmeticUncontrolled.qlref │ │ │ │ │ ├── test.c │ │ │ │ │ └── test.cpp │ │ │ │ ├── CWE-191 │ │ │ │ └── UnsignedDifferenceExpressionComparedZero │ │ │ │ │ ├── UnsignedDifferenceExpressionComparedZero.expected │ │ │ │ │ ├── UnsignedDifferenceExpressionComparedZero.qlref │ │ │ │ │ └── test.cpp │ │ │ │ ├── CWE-242 │ │ │ │ └── semmle │ │ │ │ │ └── tests │ │ │ │ │ ├── DangerousFunctionOverflow.expected │ │ │ │ │ ├── DangerousFunctionOverflow.qlref │ │ │ │ │ ├── DangerousUseOfCin.expected │ │ │ │ │ ├── DangerousUseOfCin.qlref │ │ │ │ │ ├── OverrunWrite.expected │ │ │ │ │ ├── OverrunWrite.qlref │ │ │ │ │ ├── OverrunWriteFloat.expected │ │ │ │ │ ├── OverrunWriteFloat.qlref │ │ │ │ │ └── tests.cpp │ │ │ │ ├── CWE-253 │ │ │ │ ├── HResultBooleanConversion.c │ │ │ │ ├── HResultBooleanConversion.cpp │ │ │ │ ├── HResultBooleanConversion.expected │ │ │ │ └── HResultBooleanConversion.qlref │ │ │ │ ├── CWE-290 │ │ │ │ └── semmle │ │ │ │ │ └── AuthenticationBypass │ │ │ │ │ ├── AuthenticationBypass.expected │ │ │ │ │ ├── AuthenticationBypass.qlref │ │ │ │ │ └── test.cpp │ │ │ │ ├── CWE-311 │ │ │ │ └── semmle │ │ │ │ │ └── tests │ │ │ │ │ ├── CleartextBufferWrite.expected │ │ │ │ │ ├── CleartextBufferWrite.qlref │ │ │ │ │ ├── CleartextFileWrite.expected │ │ │ │ │ ├── CleartextFileWrite.qlref │ │ │ │ │ └── test.cpp │ │ │ │ ├── CWE-367 │ │ │ │ └── semmle │ │ │ │ │ ├── TOCTOUFilesystemRace.expected │ │ │ │ │ ├── TOCTOUFilesystemRace.qlref │ │ │ │ │ └── test.cpp │ │ │ │ ├── CWE-416 │ │ │ │ └── semmle │ │ │ │ │ └── tests │ │ │ │ │ ├── UseAfterFree.expected │ │ │ │ │ ├── UseAfterFree.qlref │ │ │ │ │ └── test.cpp │ │ │ │ ├── CWE-428 │ │ │ │ ├── UnsafeCreateProcessCall.cpp │ │ │ │ ├── UnsafeCreateProcessCall.expected │ │ │ │ └── UnsafeCreateProcessCall.qlref │ │ │ │ ├── CWE-457 │ │ │ │ └── semmle │ │ │ │ │ ├── ConditionallyUninitializedVariable │ │ │ │ │ ├── ConditionallyUninitializedVariable.expected │ │ │ │ │ ├── ConditionallyUninitializedVariable.qlref │ │ │ │ │ ├── examples.cpp │ │ │ │ │ └── test.cpp │ │ │ │ │ └── tests │ │ │ │ │ ├── LoopConditionsConst.expected │ │ │ │ │ ├── LoopConditionsConst.ql │ │ │ │ │ ├── LoopConditionsConst.qll │ │ │ │ │ ├── UninitializedLocal.expected │ │ │ │ │ ├── UninitializedLocal.qlref │ │ │ │ │ └── test.cpp │ │ │ │ ├── CWE-468 │ │ │ │ └── semmle │ │ │ │ │ ├── IncorrectPointerScaling │ │ │ │ │ ├── IncorrectPointerScaling.expected │ │ │ │ │ ├── IncorrectPointerScaling.qlref │ │ │ │ │ ├── IncorrectPointerScalingChar.expected │ │ │ │ │ ├── IncorrectPointerScalingChar.qlref │ │ │ │ │ ├── IncorrectPointerScalingVoid.expected │ │ │ │ │ ├── IncorrectPointerScalingVoid.qlref │ │ │ │ │ ├── test.cpp │ │ │ │ │ ├── test_large.cpp │ │ │ │ │ └── test_small.cpp │ │ │ │ │ └── SuspiciousAddWithSizeof │ │ │ │ │ ├── SuspiciousAddWithSizeof.expected │ │ │ │ │ ├── SuspiciousAddWithSizeof.qlref │ │ │ │ │ └── test.cpp │ │ │ │ ├── CWE-497 │ │ │ │ └── semmle │ │ │ │ │ └── tests │ │ │ │ │ ├── ExposedSystemData.expected │ │ │ │ │ ├── ExposedSystemData.qlref │ │ │ │ │ ├── OutputWrite.expected │ │ │ │ │ ├── OutputWrite.ql │ │ │ │ │ └── tests2.cpp │ │ │ │ ├── CWE-676 │ │ │ │ └── semmle │ │ │ │ │ ├── DangerousUseOfCin │ │ │ │ │ ├── DangerousUseOfCin.expected │ │ │ │ │ ├── DangerousUseOfCin.qlref │ │ │ │ │ └── test.cpp │ │ │ │ │ └── PotentiallyDangerousFunction │ │ │ │ │ ├── DangerousFunctionOverflow.expected │ │ │ │ │ ├── DangerousFunctionOverflow.qlref │ │ │ │ │ ├── PotentiallyDangerousFunction.expected │ │ │ │ │ ├── PotentiallyDangerousFunction.qlref │ │ │ │ │ └── test.c │ │ │ │ ├── CWE-704 │ │ │ │ ├── WcharCharConversion.cpp │ │ │ │ ├── WcharCharConversion.expected │ │ │ │ └── WcharCharConversion.qlref │ │ │ │ ├── CWE-732 │ │ │ │ ├── UnsafeDaclSecurityDescriptor.cpp │ │ │ │ ├── UnsafeDaclSecurityDescriptor.expected │ │ │ │ └── UnsafeDaclSecurityDescriptor.qlref │ │ │ │ ├── CWE-764 │ │ │ │ └── semmle │ │ │ │ │ └── tests │ │ │ │ │ ├── DiningPhilosophers.cpp │ │ │ │ │ ├── LockOrderCycle.expected │ │ │ │ │ ├── LockOrderCycle.qlref │ │ │ │ │ ├── TwiceLocked.expected │ │ │ │ │ ├── TwiceLocked.qlref │ │ │ │ │ ├── UnreleasedLock.expected │ │ │ │ │ ├── UnreleasedLock.qlref │ │ │ │ │ └── test.cpp │ │ │ │ ├── CWE-772 │ │ │ │ └── semmle │ │ │ │ │ ├── tests-file │ │ │ │ │ ├── FileMayNotBeClosed.expected │ │ │ │ │ ├── FileMayNotBeClosed.qlref │ │ │ │ │ ├── FileNeverClosed.expected │ │ │ │ │ ├── FileNeverClosed.qlref │ │ │ │ │ └── test.cpp │ │ │ │ │ └── tests-memory │ │ │ │ │ ├── MemoryMayNotBeFreed.expected │ │ │ │ │ ├── MemoryMayNotBeFreed.qlref │ │ │ │ │ ├── MemoryNeverFreed.expected │ │ │ │ │ ├── MemoryNeverFreed.qlref │ │ │ │ │ └── test.cpp │ │ │ │ ├── CWE-807 │ │ │ │ └── semmle │ │ │ │ │ └── TaintedCondition │ │ │ │ │ ├── TaintedCondition.expected │ │ │ │ │ ├── TaintedCondition.qlref │ │ │ │ │ └── test.cpp │ │ │ │ └── CWE-835 │ │ │ │ └── semmle │ │ │ │ └── InfiniteLoopWithUnsatisfiableExitCondition │ │ │ │ ├── InfiniteLoopWithUnsatisfiableExitCondition.expected │ │ │ │ ├── InfiniteLoopWithUnsatisfiableExitCondition.qlref │ │ │ │ └── test.cpp │ │ ├── Summary │ │ │ ├── LinesOfCode.expected │ │ │ ├── LinesOfCode.qlref │ │ │ ├── empty-file.cpp │ │ │ ├── large-file.cpp │ │ │ └── short-file.cpp │ │ ├── definitions │ │ │ ├── access.c │ │ │ ├── call.c │ │ │ ├── class.cpp │ │ │ ├── definitions.expected │ │ │ ├── definitions.qlref │ │ │ ├── include.c │ │ │ ├── include.h │ │ │ ├── locationInfo.expected │ │ │ ├── locationInfo.ql │ │ │ ├── macros.c │ │ │ ├── overload.cpp │ │ │ └── type_mentions.cpp │ │ └── jsf │ │ │ ├── 3.02 Code Size and Complexity │ │ │ └── AV Rule 1 │ │ │ │ ├── AV Rule 1.c │ │ │ │ ├── AV Rule 1.expected │ │ │ │ └── AV Rule 1.qlref │ │ │ ├── 4.04 Environment │ │ │ └── AV Rule 13 │ │ │ │ ├── AV Rule 13.expected │ │ │ │ ├── AV Rule 13.qlref │ │ │ │ └── test.cpp │ │ │ ├── 4.06 Pre-Processing Directives │ │ │ └── AV Rule 32 │ │ │ │ ├── AV Rule 32.expected │ │ │ │ ├── AV Rule 32.qlref │ │ │ │ ├── test.H │ │ │ │ ├── test.c │ │ │ │ ├── test.xpm │ │ │ │ └── test2.c │ │ │ ├── 4.07 Header Files │ │ │ └── AV Rule 35 │ │ │ │ ├── AV Rule 35.expected │ │ │ │ ├── AV Rule 35.qlref │ │ │ │ ├── all1.cpp │ │ │ │ ├── all2.cpp │ │ │ │ ├── allCpp.h │ │ │ │ ├── allCppWithRepeats.h │ │ │ │ ├── complexcondition.h │ │ │ │ ├── complexcondition2.h │ │ │ │ ├── data.h │ │ │ │ ├── functionlike.h │ │ │ │ ├── fundecl.h │ │ │ │ ├── imported.h │ │ │ │ ├── includefirst.h │ │ │ │ ├── includefirsttarget.h │ │ │ │ ├── items.h │ │ │ │ ├── items2.h │ │ │ │ ├── items3.h │ │ │ │ ├── matched.H │ │ │ │ ├── matched_wrap.H │ │ │ │ ├── multipleguards.h │ │ │ │ ├── namespace1.h │ │ │ │ ├── namespace2.h │ │ │ │ ├── notcondition.h │ │ │ │ ├── one_time.h │ │ │ │ ├── pragma.h │ │ │ │ ├── preproc.h │ │ │ │ ├── preproc2.h │ │ │ │ ├── preproc3.h │ │ │ │ ├── unmatched.h │ │ │ │ ├── vardecl.h │ │ │ │ ├── x.h │ │ │ │ ├── y.h │ │ │ │ └── z.h │ │ │ ├── 4.09 Style │ │ │ └── AV Rule 53 54 │ │ │ │ ├── AV Rule 53.1.expected │ │ │ │ ├── AV Rule 53.1.qlref │ │ │ │ ├── AV Rule 53.expected │ │ │ │ ├── AV Rule 53.qlref │ │ │ │ ├── AV Rule 54.expected │ │ │ │ ├── AV Rule 54.qlref │ │ │ │ ├── files.expected │ │ │ │ ├── files.ql │ │ │ │ ├── test │ │ │ │ ├── test'.c │ │ │ │ ├── test'.h │ │ │ │ ├── test.CPP │ │ │ │ ├── test.H │ │ │ │ ├── test.abc │ │ │ │ ├── test.c │ │ │ │ ├── test.c++ │ │ │ │ └── test.hpp │ │ │ ├── 4.10 Classes │ │ │ ├── AV Rule 73 │ │ │ │ ├── AV Rule 73.cpp │ │ │ │ ├── AV Rule 73.expected │ │ │ │ ├── AV Rule 73.qlref │ │ │ │ └── original.cpp │ │ │ ├── AV Rule 77.1 │ │ │ │ ├── AV Rule 77.1.expected │ │ │ │ ├── AV Rule 77.1.qlref │ │ │ │ └── test.cpp │ │ │ ├── AV Rule 78 │ │ │ │ ├── AV Rule 78.cpp │ │ │ │ ├── AV Rule 78.expected │ │ │ │ └── AV Rule 78.qlref │ │ │ ├── AV Rule 79 │ │ │ │ ├── AV Rule 79.cpp │ │ │ │ ├── AV Rule 79.expected │ │ │ │ ├── AV Rule 79.qlref │ │ │ │ ├── Container2.cpp │ │ │ │ ├── DeleteThis.cpp │ │ │ │ ├── ExternalOwners.cpp │ │ │ │ ├── Lambda.cpp │ │ │ │ ├── ListDelete.cpp │ │ │ │ ├── NoDestructor.cpp │ │ │ │ ├── PlacementNew.cpp │ │ │ │ ├── QObject.cpp │ │ │ │ ├── SelfRegistering.cpp │ │ │ │ ├── TemplateDelete.cpp │ │ │ │ ├── Variants.cpp │ │ │ │ └── Wrapped.cpp │ │ │ ├── AV Rule 82 │ │ │ │ ├── AV Rule 82.cpp │ │ │ │ ├── AV Rule 82.expected │ │ │ │ └── AV Rule 82.qlref │ │ │ ├── AV Rule 85 │ │ │ │ ├── AV Rule 85.cpp │ │ │ │ ├── AV Rule 85.expected │ │ │ │ └── AV Rule 85.qlref │ │ │ └── AV Rule 97 │ │ │ │ ├── AV Rule 97.expected │ │ │ │ ├── AV Rule 97.qlref │ │ │ │ └── jsf97.cpp │ │ │ ├── 4.13 Functions │ │ │ ├── AV Rule 107 │ │ │ │ ├── AV Rule 107.expected │ │ │ │ ├── AV Rule 107.qlref │ │ │ │ └── test.c │ │ │ └── AV Rule 114 │ │ │ │ ├── AV Rule 114.expected │ │ │ │ ├── AV Rule 114.qlref │ │ │ │ ├── complex.c │ │ │ │ ├── test.c │ │ │ │ └── test.cpp │ │ │ ├── 4.16 Initialization │ │ │ └── AV Rule 145 │ │ │ │ ├── AV Rule 145.expected │ │ │ │ ├── AV Rule 145.qlref │ │ │ │ └── test.c │ │ │ ├── 4.21 Operators │ │ │ ├── AV Rule 157 │ │ │ │ ├── AV Rule 157.expected │ │ │ │ ├── AV Rule 157.qlref │ │ │ │ └── test.c │ │ │ ├── AV Rule 164 │ │ │ │ ├── AV Rule 164.expected │ │ │ │ ├── AV Rule 164.qlref │ │ │ │ └── test.c │ │ │ ├── AV Rule 165 │ │ │ │ ├── AV Rule 165.expected │ │ │ │ ├── AV Rule 165.qlref │ │ │ │ └── test.c │ │ │ └── AV Rule 166 │ │ │ │ ├── AV Rule 166.expected │ │ │ │ ├── AV Rule 166.qlref │ │ │ │ └── test.c │ │ │ ├── 4.22 Pointers and References │ │ │ └── AV Rule 176 │ │ │ │ ├── 176.cpp │ │ │ │ ├── 176.expected │ │ │ │ └── 176.qlref │ │ │ ├── 4.24 Control Flow Structures │ │ │ ├── AV Rule 186 │ │ │ │ ├── AV Rule 186.expected │ │ │ │ ├── AV Rule 186.qlref │ │ │ │ └── test.c │ │ │ ├── AV Rule 193 │ │ │ │ ├── AV Rule 193.c │ │ │ │ ├── AV Rule 193.expected │ │ │ │ ├── AV Rule 193.qlref │ │ │ │ ├── nested.c │ │ │ │ └── test.c │ │ │ ├── AV Rule 196 │ │ │ │ ├── AV Rule 196.c │ │ │ │ ├── AV Rule 196.expected │ │ │ │ └── AV Rule 196.qlref │ │ │ └── AV Rule 201 │ │ │ │ ├── AV Rule 201.c │ │ │ │ ├── AV Rule 201.expected │ │ │ │ ├── AV Rule 201.qlref │ │ │ │ ├── NestedLoopSameVar.expected │ │ │ │ ├── NestedLoopSameVar.qlref │ │ │ │ └── StructMembers.cpp │ │ │ └── 4.28 Portable Code │ │ │ └── AV Rule 210 │ │ │ ├── AV Rule 210.c │ │ │ ├── AV Rule 210.expected │ │ │ └── AV Rule 210.qlref │ │ └── successor-tests │ │ ├── aborting-functions │ │ ├── cfg.expected │ │ ├── cfg.ql │ │ └── test.cpp │ │ ├── assignexpr │ │ ├── assignexpr.cpp │ │ ├── cfg.expected │ │ └── cfg.ql │ │ ├── block │ │ ├── dummyblock │ │ │ ├── dummyblock.c │ │ │ ├── dummyblock01.expected │ │ │ └── dummyblock01.ql │ │ └── emptyblock │ │ │ ├── emptyblock.c │ │ │ ├── emptyblock01.expected │ │ │ └── emptyblock01.ql │ │ ├── break_labels │ │ ├── cfg.expected │ │ ├── cfg.ql │ │ └── test.c │ │ ├── callexpr │ │ ├── args │ │ │ ├── membercallexpr │ │ │ │ ├── cfg.expected │ │ │ │ ├── cfg.ql │ │ │ │ └── membercallexpr.cpp │ │ │ └── staticmembercallexpr │ │ │ │ ├── cfg.expected │ │ │ │ ├── cfg.ql │ │ │ │ └── staticmembercallexpr.cpp │ │ └── noargs │ │ │ ├── membercallexpr │ │ │ ├── cfg.expected │ │ │ ├── cfg.ql │ │ │ └── membercallexpr.cpp │ │ │ ├── nonmembercallexpr │ │ │ ├── cfg.expected │ │ │ ├── cfg.ql │ │ │ └── nonmembercallexpr.c │ │ │ ├── nonmemberfp2callexpr │ │ │ ├── cfg.expected │ │ │ ├── cfg.ql │ │ │ └── nonmemberfp2callexpr.c │ │ │ ├── nonmemberfpcallexpr │ │ │ ├── cfg.expected │ │ │ ├── cfg.ql │ │ │ └── nonmemberfpcallexpr.c │ │ │ ├── pmcallexpr │ │ │ ├── cfg.expected │ │ │ ├── cfg.ql │ │ │ └── pmcallexpr.cpp │ │ │ └── staticmembercallexpr │ │ │ ├── cfg.expected │ │ │ ├── cfg.ql │ │ │ └── staticmembercallexpr.cpp │ │ ├── conditional_destructors │ │ ├── cfg.expected │ │ ├── cfg.ql │ │ └── test.cpp │ │ ├── deleteexpr │ │ ├── allocators │ │ │ ├── allocators.cpp │ │ │ ├── calls.expected │ │ │ ├── calls.ql │ │ │ ├── cfg.expected │ │ │ ├── cfg.ql │ │ │ └── options │ │ ├── array_delete │ │ │ ├── array_delete.cpp │ │ │ ├── array_delete.expected │ │ │ └── array_delete.ql │ │ ├── defdestructordeleteexpr │ │ │ ├── defdestructordeleteexpr.cpp │ │ │ ├── defdestructordeleteexpr01.expected │ │ │ └── defdestructordeleteexpr01.ql │ │ └── deleteexpr │ │ │ ├── deleteexpr.cpp │ │ │ ├── deleteexpr01.expected │ │ │ └── deleteexpr01.ql │ │ ├── dostmt │ │ ├── dostmt.c │ │ ├── dostmt01.expected │ │ ├── dostmt01.ql │ │ ├── dostmt02.expected │ │ ├── dostmt02.ql │ │ ├── dostmt03.expected │ │ ├── dostmt03.ql │ │ ├── dostmt04.expected │ │ ├── dostmt04.ql │ │ ├── dostmt05.expected │ │ ├── dostmt05.ql │ │ ├── dostmt06.expected │ │ ├── dostmt06.ql │ │ ├── dostmt07.expected │ │ ├── dostmt07.ql │ │ ├── dostmt08.expected │ │ ├── dostmt08.ql │ │ ├── dostmt09.expected │ │ ├── dostmt09.ql │ │ ├── dostmt10.expected │ │ └── dostmt10.ql │ │ ├── enum │ │ ├── cfg.expected │ │ ├── cfg.ql │ │ └── enum.c │ │ ├── exceptionhandler │ │ ├── ellipsisexceptionhandler │ │ │ ├── ellipsisexceptionhandler.cpp │ │ │ ├── graphable.expected │ │ │ └── graphable.ql │ │ └── exceptionhandler │ │ │ ├── exceptionhandler.cpp │ │ │ ├── graphable.expected │ │ │ └── graphable.ql │ │ ├── exprstmt │ │ ├── cfg.expected │ │ ├── cfg.ql │ │ └── exprstmt.c │ │ ├── fieldaccessexpr │ │ ├── constmemberaccess │ │ │ ├── cfg.expected │ │ │ ├── cfg.ql │ │ │ └── constmemberaccess.cpp │ │ └── fieldaccess │ │ │ ├── cfg.expected │ │ │ ├── cfg.ql │ │ │ └── fieldaccess.cpp │ │ ├── forstmt │ │ ├── forstmt │ │ │ ├── forstmt.cpp │ │ │ ├── forstmt01.expected │ │ │ └── forstmt01.ql │ │ ├── shortforstmt │ │ │ ├── shortforstmt.cpp │ │ │ ├── shortforstmt01.expected │ │ │ ├── shortforstmt01.ql │ │ │ ├── shortforstmt02.expected │ │ │ ├── shortforstmt02.ql │ │ │ ├── shortforstmt03.expected │ │ │ ├── shortforstmt03.ql │ │ │ ├── shortforstmt04.expected │ │ │ ├── shortforstmt04.ql │ │ │ ├── shortforstmt05.expected │ │ │ ├── shortforstmt05.ql │ │ │ ├── shortforstmt06.expected │ │ │ ├── shortforstmt06.ql │ │ │ ├── shortforstmt07.expected │ │ │ └── shortforstmt07.ql │ │ └── tinyforstmt │ │ │ ├── cfg.expected │ │ │ ├── cfg.ql │ │ │ └── tinyforstmt.c │ │ ├── gotostmt │ │ ├── cfg.expected │ │ ├── cfg.ql │ │ └── gotostmt.c │ │ ├── ifstmt │ │ ├── ifelsestmt │ │ │ ├── ifelsestmt.c │ │ │ ├── ifelsestmt01.expected │ │ │ ├── ifelsestmt01.ql │ │ │ ├── ifelsestmt02.expected │ │ │ ├── ifelsestmt02.ql │ │ │ ├── ifelsestmt03.expected │ │ │ ├── ifelsestmt03.ql │ │ │ ├── ifelsestmt04.expected │ │ │ ├── ifelsestmt04.ql │ │ │ ├── ifelsestmt05.expected │ │ │ ├── ifelsestmt05.ql │ │ │ ├── ifelsestmt06.expected │ │ │ ├── ifelsestmt06.ql │ │ │ ├── ifelsestmt07.expected │ │ │ ├── ifelsestmt07.ql │ │ │ ├── ifelsestmt08.expected │ │ │ ├── ifelsestmt08.ql │ │ │ ├── ifelsestmt09.expected │ │ │ ├── ifelsestmt09.ql │ │ │ ├── ifelsestmt10.expected │ │ │ ├── ifelsestmt10.ql │ │ │ ├── ifelsestmt11.expected │ │ │ └── ifelsestmt11.ql │ │ └── ifstmt │ │ │ ├── ifstmt.c │ │ │ ├── ifstmt01.expected │ │ │ ├── ifstmt01.ql │ │ │ ├── ifstmt02.expected │ │ │ ├── ifstmt02.ql │ │ │ ├── ifstmt03.expected │ │ │ ├── ifstmt03.ql │ │ │ ├── ifstmt04.expected │ │ │ ├── ifstmt04.ql │ │ │ ├── ifstmt05.expected │ │ │ ├── ifstmt05.ql │ │ │ ├── ifstmt06.expected │ │ │ ├── ifstmt06.ql │ │ │ ├── ifstmt07.expected │ │ │ ├── ifstmt07.ql │ │ │ ├── ifstmt08.expected │ │ │ ├── ifstmt08.ql │ │ │ ├── ifstmt09.expected │ │ │ ├── ifstmt09.ql │ │ │ ├── ifstmt10.expected │ │ │ └── ifstmt10.ql │ │ ├── initializer │ │ ├── aggregateinitializer │ │ │ ├── aggregateinitializer.c │ │ │ ├── aggregateinitializer01.expected │ │ │ └── aggregateinitializer01.ql │ │ ├── constructorinitializer │ │ │ ├── constructorinitializer.cpp │ │ │ ├── constructorinitializer01.expected │ │ │ └── constructorinitializer01.ql │ │ ├── initializer │ │ │ ├── initializer.c │ │ │ ├── initializer01.expected │ │ │ └── initializer01.ql │ │ └── parameterinitializer │ │ │ ├── controlflownode.expected │ │ │ ├── controlflownode.ql │ │ │ └── parameterinitializer.cpp │ │ ├── landexpr │ │ ├── cfg.expected │ │ ├── cfg.ql │ │ └── landexpr.c │ │ ├── lorexpr │ │ ├── cfg.expected │ │ ├── cfg.ql │ │ └── lorexpr.c │ │ ├── ltrbinopexpr │ │ ├── cfg.expected │ │ ├── cfg.ql │ │ └── ltrbinopexpr.c │ │ ├── newexpr │ │ ├── defconstructornewexpr │ │ │ ├── cfg.expected │ │ │ ├── cfg.ql │ │ │ └── defconstructornewexpr.cpp │ │ └── newexpr │ │ │ ├── cfg.expected │ │ │ ├── cfg.ql │ │ │ └── newexpr.cpp │ │ ├── pruning │ │ ├── graphable.expected │ │ ├── graphable.ql │ │ └── test.c │ │ ├── questionexpr │ │ ├── cfg.expected │ │ ├── cfg.ql │ │ └── questionexpr.c │ │ ├── returnstmt │ │ ├── graphable.expected │ │ ├── graphable.ql │ │ └── returnstmt.c │ │ ├── stackvariables │ │ ├── stackvariables │ │ │ ├── condition_decls.cpp │ │ │ ├── graphable.expected │ │ │ ├── graphable.ql │ │ │ ├── statements.cpp │ │ │ └── statements.h │ │ └── void_bug │ │ │ ├── options │ │ │ ├── void_bug.cpp │ │ │ ├── void_bug.expected │ │ │ ├── void_bug.h │ │ │ └── void_bug.ql │ │ ├── staticlocals │ │ ├── no_dynamic_init │ │ │ ├── exprs.expected │ │ │ ├── exprs.ql │ │ │ └── no_dynamic_init.cpp │ │ └── staticlocals │ │ │ ├── staticlocals.cpp │ │ │ ├── staticlocals01.expected │ │ │ └── staticlocals01.ql │ │ ├── stmt_expr │ │ ├── cfg.expected │ │ ├── cfg.ql │ │ └── test.cpp │ │ ├── subscriptexpr │ │ └── subscriptexpr │ │ │ ├── cfg.expected │ │ │ ├── cfg.ql │ │ │ ├── revsubscriptexpr.c │ │ │ └── subscriptexpr.c │ │ ├── switchstmt │ │ ├── duff │ │ │ ├── cfg.expected │ │ │ ├── cfg.ql │ │ │ └── duff.c │ │ ├── duff2 │ │ │ ├── cfg.expected │ │ │ ├── cfg.ql │ │ │ └── duff.c │ │ ├── nodefaultswitchstmt │ │ │ ├── cfg.expected │ │ │ ├── cfg.ql │ │ │ └── nodefaultswitchstmt.c │ │ ├── switchbody │ │ │ ├── graphable.expected │ │ │ ├── graphable.ql │ │ │ └── switchbody.c │ │ └── switchstmt │ │ │ ├── cfg.expected │ │ │ ├── cfg.ql │ │ │ └── switchstmt.c │ │ ├── unaryopexpr │ │ ├── cfg.expected │ │ ├── cfg.ql │ │ └── unaryopexpr.c │ │ └── whilestmt │ │ ├── whilestmt.c │ │ ├── whilestmt01.expected │ │ ├── whilestmt01.ql │ │ ├── whilestmt02.expected │ │ ├── whilestmt02.ql │ │ ├── whilestmt03.expected │ │ ├── whilestmt03.ql │ │ ├── whilestmt04.expected │ │ ├── whilestmt04.ql │ │ ├── whilestmt05.expected │ │ ├── whilestmt05.ql │ │ ├── whilestmt06.expected │ │ ├── whilestmt06.ql │ │ ├── whilestmt07.expected │ │ ├── whilestmt07.ql │ │ ├── whilestmt08.expected │ │ ├── whilestmt08.ql │ │ ├── whilestmt09.expected │ │ ├── whilestmt09.ql │ │ ├── whilestmt10.expected │ │ ├── whilestmt10.ql │ │ ├── whilestmt11.expected │ │ └── whilestmt11.ql └── upgrades │ ├── 025827d85c3f44a7fd52d4fad636e9a4141f12dd │ ├── old.dbscheme │ ├── semmlecode.cpp.dbscheme │ ├── static_asserts.ql │ └── upgrade.properties │ ├── 098850d25c4e9d417eb74c1bef9deb2f9d2dc417 │ ├── old.dbscheme │ ├── semmlecode.cpp.dbscheme │ └── upgrade.properties │ ├── 0ed3da4a31c3a3dd01d9bb84d7908cf64b9f31a3 │ ├── old.dbscheme │ ├── semmlecode.cpp.dbscheme │ └── upgrade.properties │ ├── 2074f1cc7a3659ad555465a8025a8f2b7687896b │ ├── old.dbscheme │ ├── semmlecode.cpp.dbscheme │ └── upgrade.properties │ ├── 282c13bfdbcbd57a887972b47a471342a4ad5507 │ ├── member_function_this_type.ql │ ├── old.dbscheme │ ├── semmlecode.cpp.dbscheme │ └── upgrade.properties │ ├── 678a0f9164f610429552ff211ec47d7975123d96 │ ├── old.dbscheme │ ├── semmlecode.cpp.dbscheme │ └── upgrade.properties │ ├── 7144cc0986f3ab58a568058e143acecc6429c9d1 │ ├── old.dbscheme │ ├── semmlecode.cpp.dbscheme │ └── upgrade.properties │ ├── 731597194dc44772ca4c2baa5e76679165bf33ea │ ├── old.dbscheme │ ├── semmlecode.cpp.dbscheme │ └── upgrade.properties │ ├── 75da61c94e19ae80a142f03a877ab9d0728752bc │ ├── old.dbscheme │ ├── semmlecode.cpp.dbscheme │ └── upgrade.properties │ ├── 814fae599505510ff15102f4c72600586734770a │ ├── lambda_capture.ql │ ├── old.dbscheme │ ├── semmlecode.cpp.dbscheme │ └── upgrade.properties │ ├── 81a312e6dafdffb650e1c7e3dc02cc37505e2505 │ ├── old.dbscheme │ ├── semmlecode.cpp.dbscheme │ └── upgrade.properties │ ├── 874439f4c501cb03a39fba053eef9d384216bbf2 │ ├── old.dbscheme │ ├── semmlecode.cpp.dbscheme │ └── upgrade.properties │ ├── 950219747b684ffdd229775acfcc5267eea3dc4f │ ├── old.dbscheme │ ├── semmlecode.cpp.dbscheme │ └── upgrade.properties │ ├── 98a075d5495d7be7ede26557708cf22cfa3964ef │ ├── old.dbscheme │ ├── semmlecode.cpp.dbscheme │ └── upgrade.properties │ ├── b5fa4fb0283c4accf2d85d559aeb2bba914c102b │ ├── old.dbscheme │ ├── semmlecode.cpp.dbscheme │ └── upgrade.properties │ ├── bd182f697bf1316c401421d64e582871331a69f4 │ ├── old.dbscheme │ ├── semmlecode.cpp.dbscheme │ └── upgrade.properties │ ├── c3e69834734e3ef4170e996c5b96a89619799346 │ ├── old.dbscheme │ ├── semmlecode.cpp.dbscheme │ └── upgrade.properties │ ├── c4c27a2661b3baaf1cfd8e370320a106b7f41e2e │ ├── old.dbscheme │ ├── semmlecode.cpp.dbscheme │ └── upgrade.properties │ ├── c82db4c596b8979eba9a8958e24353a5756d7a02 │ ├── old.dbscheme │ ├── semmlecode.cpp.dbscheme │ └── upgrade.properties │ ├── c9ac0461491edef3b1ab79f03d007a47522dda90 │ ├── old.dbscheme │ ├── semmlecode.cpp.dbscheme │ └── upgrade.properties │ ├── cac7e92107084af19112986145f72b8de646c39d │ ├── old.dbscheme │ ├── semmlecode.cpp.dbscheme │ ├── upgrade.properties │ ├── values.ql │ └── valuetext.ql │ ├── d6ca4ebb7680e241b647e78b96999eaf9d84e5b7 │ ├── old.dbscheme │ ├── semmlecode.cpp.dbscheme │ └── upgrade.properties │ ├── eb4aee70e25cada13103d62ab38afedb5ceac08f │ ├── old.dbscheme │ ├── semmlecode.cpp.dbscheme │ └── upgrade.properties │ ├── ef73d8cf906d356a00a10d0e8dc0e1c1e66d210c │ ├── old.dbscheme │ ├── semmlecode.cpp.dbscheme │ └── upgrade.properties │ └── qlpack.yml ├── csharp ├── .editorconfig ├── .gitignore ├── .vscode │ ├── extensions.json │ ├── settings.json │ └── tasks.json ├── CSharp.sln ├── autobuilder │ ├── Semmle.Autobuild.CSharp.Tests │ │ ├── BuildScripts.cs │ │ └── Semmle.Autobuild.CSharp.Tests.csproj │ ├── Semmle.Autobuild.CSharp │ │ ├── CSharpAutobuilder.cs │ │ ├── DotNetRule.cs │ │ ├── Program.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── Semmle.Autobuild.CSharp.csproj │ │ └── StandaloneBuildRule.cs │ └── Semmle.Autobuild.Shared │ │ ├── AutobuildOptions.cs │ │ ├── Autobuilder.cs │ │ ├── BuildActions.cs │ │ ├── BuildCommandAutoRule.cs │ │ ├── BuildCommandRule.cs │ │ ├── BuildScript.cs │ │ ├── BuildTools.cs │ │ ├── CommandBuilder.cs │ │ ├── Language.cs │ │ ├── MsBuildRule.cs │ │ ├── Project.cs │ │ ├── ProjectOrSolution.cs │ │ ├── Properties │ │ └── AssemblyInfo.cs │ │ ├── Semmle.Autobuild.Shared.csproj │ │ └── Solution.cs ├── change-notes │ ├── 2020-08-18-ast-viewer.md │ ├── 2020-08-18-partial-method-bodies.md │ ├── 2020-08-26-implicit-array-lengths.md │ ├── 2020-09-02-assembly-insensitive-trap.md │ ├── 2020-09-22-weak-encryption.md │ ├── 2020-10-21-AST-printing-improvements.md │ ├── 2020-10-21-CodeAnalysis-attributes-in-assert.md │ ├── 2020-10-21-rework-attribute-extraction.md │ ├── 2020-10-28-cil-to-string.md │ ├── 2020-11-05-get-sourcedeclaration-rename.md │ ├── 2020-11-18-lambda-modifiers.md │ ├── 2020-11-18-local-function-attributable.md │ ├── 2020-12-08-cil-enum-underlying-type.md │ ├── 2020-12-17-format-method-empty-overload.md │ ├── 2020-12-18-extract-custom-modifiers.md │ ├── 2020-12-21-merge-format-queries.md │ ├── 2021-01-14-Unary-pattern.md │ ├── 2021-01-15-Relational-pattern.md │ ├── 2021-01-19-Function-pointer.md │ ├── 2021-01-25-Function-pointer-cil.md │ ├── 2021-01-27-Add-binary-pattern.md │ ├── 2021-02-01-Preprocessor-directives.md │ ├── 2021-02-02-foreach-underlying-methods.md │ ├── 2021-02-04-Records.md │ ├── 2021-02-12-with-expression.md │ ├── 2021-02-26-tuple-dataflow.md │ ├── 2021-03-01-fluent-interface-data-flow.md │ ├── 2021-03-02-dotnet5.md │ ├── 2021-03-24-cil-ssa.md │ ├── 2021-03-24-remove-legacy-queries.md │ └── 2021-03-24-remove-vuln-package-query.md ├── codeql-extractor.yml ├── config │ ├── suites │ │ └── lgtm │ │ │ ├── csharp-alerts-lgtm │ │ │ ├── csharp-lgtm │ │ │ ├── csharp-metrics-lgtm │ │ │ └── csharp-queries-lgtm │ └── tracer │ │ ├── linux │ │ ├── csharp-compiler-settings │ │ └── extract-csharp.sh │ │ └── windows │ │ └── csharp-compiler-settings ├── extractor │ ├── Semmle.Extraction.CIL.Driver │ │ ├── ExtractorOptions.cs │ │ ├── InvalidAssemblyException.cs │ │ ├── Program.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ └── Semmle.Extraction.CIL.Driver.csproj │ ├── Semmle.Extraction.CIL │ │ ├── Analyser.cs │ │ ├── CachedFunction.cs │ │ ├── Context.Factories.cs │ │ ├── Context.cs │ │ ├── EmptyContext.cs │ │ ├── Entities │ │ │ ├── ArrayType.cs │ │ │ ├── Assembly.cs │ │ │ ├── Attribute.cs │ │ │ ├── Base │ │ │ │ ├── IExtractedEntity.cs │ │ │ │ ├── IExtractionProduct.cs │ │ │ │ ├── IGenericContext.cs │ │ │ │ ├── LabelledEntity.cs │ │ │ │ ├── Tuple.cs │ │ │ │ └── UnlabelledEntity.cs │ │ │ ├── ByRefType.cs │ │ │ ├── CilTypeKind.cs │ │ │ ├── ConstructedType.cs │ │ │ ├── CustomAttributeDecoder.cs │ │ │ ├── DefinitionField.cs │ │ │ ├── DefinitionMethod.cs │ │ │ ├── ErrorType.cs │ │ │ ├── Event.cs │ │ │ ├── ExceptionRegion.cs │ │ │ ├── Field.cs │ │ │ ├── File.cs │ │ │ ├── Folder.cs │ │ │ ├── FunctionPointerType.cs │ │ │ ├── GenericsHelper.cs │ │ │ ├── IFileOrFolder.cs │ │ │ ├── ILocation.cs │ │ │ ├── IMember.cs │ │ │ ├── IParameterizable.cs │ │ │ ├── ITypeSignature.cs │ │ │ ├── Instruction.cs │ │ │ ├── LocalVariable.cs │ │ │ ├── MemberReferenceField.cs │ │ │ ├── MemberReferenceMethod.cs │ │ │ ├── Method.cs │ │ │ ├── MethodImplementation.cs │ │ │ ├── MethodSpecificationMethod.cs │ │ │ ├── MethodTypeParameter.cs │ │ │ ├── ModifiedType.cs │ │ │ ├── NamedTypeIdWriter.cs │ │ │ ├── Namespace.cs │ │ │ ├── NoMetadataHandleType.FullyQualifiedNameParser.cs │ │ │ ├── NoMetadataHandleType.cs │ │ │ ├── Parameter.cs │ │ │ ├── PdbSourceFile.cs │ │ │ ├── PointerType.cs │ │ │ ├── PrimitiveType.cs │ │ │ ├── Property.cs │ │ │ ├── SignatureDecoder.cs │ │ │ ├── SourceLocation.cs │ │ │ ├── Type.cs │ │ │ ├── TypeAnnotation.cs │ │ │ ├── TypeContainer.cs │ │ │ ├── TypeDefinitionType.cs │ │ │ ├── TypeParameter.cs │ │ │ ├── TypeReferenceType.cs │ │ │ ├── TypeSignatureDecoder.cs │ │ │ └── TypeTypeParameter.cs │ │ ├── ICustomModifierReceiver.cs │ │ ├── Id.cs │ │ ├── PDB │ │ │ ├── IPdb.cs │ │ │ ├── ISourceFile.cs │ │ │ ├── Location.cs │ │ │ ├── MdProvider.cs │ │ │ ├── MetadataPdbReader.cs │ │ │ ├── Method.cs │ │ │ ├── NativePdbReader.cs │ │ │ ├── PdbReader.cs │ │ │ └── SequencePoint.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── Semmle.Extraction.CIL.csproj │ │ └── Tuples.cs │ ├── Semmle.Extraction.CSharp.Driver │ │ ├── Driver.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ └── Semmle.Extraction.CSharp.Driver.csproj │ ├── Semmle.Extraction.CSharp.Standalone │ │ ├── AssemblyCache.cs │ │ ├── AssemblyInfo.cs │ │ ├── AssemblyLoadException.cs │ │ ├── BuildAnalysis.cs │ │ ├── CsProjFile.cs │ │ ├── DotNet.cs │ │ ├── NugetPackages.cs │ │ ├── Options.cs │ │ ├── Program.cs │ │ ├── ProgressMonitor.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── Runtime.cs │ │ ├── Semmle.Extraction.CSharp.Standalone.csproj │ │ └── SolutionFile.cs │ ├── Semmle.Extraction.CSharp │ │ ├── CachedEntityFactory.cs │ │ ├── Comments │ │ │ ├── CommentBinding.cs │ │ │ ├── CommentBlock.cs │ │ │ ├── CommentLineType.cs │ │ │ └── CommentProcessor.cs │ │ ├── Entities │ │ │ ├── Accessor.cs │ │ │ ├── Assembly.cs │ │ │ ├── Attribute.cs │ │ │ ├── CachedEntity.cs │ │ │ ├── CachedSymbol.cs │ │ │ ├── CallTypeExtensions.cs │ │ │ ├── CommentBlock.cs │ │ │ ├── CommentLine.cs │ │ │ ├── Compilations │ │ │ │ ├── Compilation.cs │ │ │ │ ├── Diagnostic.cs │ │ │ │ ├── PerformanceMetrics.cs │ │ │ │ └── Timings.cs │ │ │ ├── Constructor.cs │ │ │ ├── Conversion.cs │ │ │ ├── Destructor.cs │ │ │ ├── Event.cs │ │ │ ├── EventAccessor.cs │ │ │ ├── Expression.cs │ │ │ ├── ExpressionInfo.cs │ │ │ ├── ExpressionNodeInfo.cs │ │ │ ├── Expression`1.cs │ │ │ ├── Expressions │ │ │ │ ├── Access.cs │ │ │ │ ├── ArgList.cs │ │ │ │ ├── ArrayCreation.cs │ │ │ │ ├── Assignment.cs │ │ │ │ ├── Await.cs │ │ │ │ ├── Base.cs │ │ │ │ ├── Binary.cs │ │ │ │ ├── Cast.cs │ │ │ │ ├── Checked.cs │ │ │ │ ├── Conditional.cs │ │ │ │ ├── Default.cs │ │ │ │ ├── DefineSymbol.cs │ │ │ │ ├── Discard.cs │ │ │ │ ├── ElementAccess.cs │ │ │ │ ├── Factory.cs │ │ │ │ ├── ImplicitCast.cs │ │ │ │ ├── Initializer.cs │ │ │ │ ├── InterpolatedString.cs │ │ │ │ ├── Invocation.cs │ │ │ │ ├── IsPattern.cs │ │ │ │ ├── Lambda.cs │ │ │ │ ├── Literal.cs │ │ │ │ ├── MakeRef.cs │ │ │ │ ├── MemberAccess.cs │ │ │ │ ├── Name.cs │ │ │ │ ├── ObjectCreation │ │ │ │ │ ├── AnonymousObjectCreation.cs │ │ │ │ │ ├── BaseObjectCreation.cs │ │ │ │ │ ├── ExplicitObjectCreation.cs │ │ │ │ │ └── ImplicitObjectCreation.cs │ │ │ │ ├── Patterns │ │ │ │ │ ├── BinaryPattern.cs │ │ │ │ │ ├── Pattern.cs │ │ │ │ │ ├── PositionalPattern.cs │ │ │ │ │ ├── PropertyPattern.cs │ │ │ │ │ ├── RecursivePattern.cs │ │ │ │ │ ├── RelationalPattern.cs │ │ │ │ │ └── UnaryPattern.cs │ │ │ │ ├── PointerMemberAccess.cs │ │ │ │ ├── PostfixUnary.cs │ │ │ │ ├── Query.cs │ │ │ │ ├── RangeExpression.cs │ │ │ │ ├── Ref.cs │ │ │ │ ├── RefType.cs │ │ │ │ ├── RefValue.cs │ │ │ │ ├── Sizeof.cs │ │ │ │ ├── Switch.cs │ │ │ │ ├── This.cs │ │ │ │ ├── Throw.cs │ │ │ │ ├── Tuple.cs │ │ │ │ ├── TypeAccess.cs │ │ │ │ ├── TypeOf.cs │ │ │ │ ├── Unary.cs │ │ │ │ ├── Unchecked.cs │ │ │ │ ├── Unknown.cs │ │ │ │ ├── VariableDeclaration.cs │ │ │ │ └── WithExpression.cs │ │ │ ├── Field.cs │ │ │ ├── File.cs │ │ │ ├── FreshEntity.cs │ │ │ ├── IExpressionInfo.cs │ │ │ ├── IExpressionParentEntity.cs │ │ │ ├── IStatementParentEntity.cs │ │ │ ├── Indexer.cs │ │ │ ├── LocalFunction.cs │ │ │ ├── LocalVariable.cs │ │ │ ├── Method.cs │ │ │ ├── Modifier.cs │ │ │ ├── Namespace.cs │ │ │ ├── NamespaceDeclaration.cs │ │ │ ├── NonGeneratedSourceLocation.cs │ │ │ ├── OrdinaryMethod.cs │ │ │ ├── Parameter.cs │ │ │ ├── PreprocessorDirectives │ │ │ │ ├── DefineDirective.cs │ │ │ │ ├── ElifDirective.cs │ │ │ │ ├── ElseDirective.cs │ │ │ │ ├── EndIfDirective.cs │ │ │ │ ├── EndRegionDirective.cs │ │ │ │ ├── ErrorDirective.cs │ │ │ │ ├── IIfSiblingDirective.cs │ │ │ │ ├── IfDirective.cs │ │ │ │ ├── LineDirective.cs │ │ │ │ ├── NullableDirective.cs │ │ │ │ ├── PragmaChecksumDirective.cs │ │ │ │ ├── PragmaWarningDirective.cs │ │ │ │ ├── PreprocessorDirective.cs │ │ │ │ ├── RegionDirective.cs │ │ │ │ ├── UndefineDirective.cs │ │ │ │ └── WarningDirective.cs │ │ │ ├── Property.cs │ │ │ ├── Statement.cs │ │ │ ├── Statement`1.cs │ │ │ ├── Statements │ │ │ │ ├── Block.cs │ │ │ │ ├── Break.cs │ │ │ │ ├── Case.cs │ │ │ │ ├── Catch.cs │ │ │ │ ├── Checked.cs │ │ │ │ ├── Continue.cs │ │ │ │ ├── Do.cs │ │ │ │ ├── Empty.cs │ │ │ │ ├── ExpressionStatement.cs │ │ │ │ ├── Factory.cs │ │ │ │ ├── Fixed.cs │ │ │ │ ├── For.cs │ │ │ │ ├── ForEach.cs │ │ │ │ ├── GlobalStatementsBlock.cs │ │ │ │ ├── Goto.cs │ │ │ │ ├── If.cs │ │ │ │ ├── Labeled.cs │ │ │ │ ├── LocalDeclaration.cs │ │ │ │ ├── LocalFunction.cs │ │ │ │ ├── Lock.cs │ │ │ │ ├── Return.cs │ │ │ │ ├── Switch.cs │ │ │ │ ├── Throw.cs │ │ │ │ ├── Try.cs │ │ │ │ ├── Unchecked.cs │ │ │ │ ├── Unsafe.cs │ │ │ │ ├── Using.cs │ │ │ │ ├── While.cs │ │ │ │ └── Yield.cs │ │ │ ├── TypeMention.cs │ │ │ ├── Types │ │ │ │ ├── ArrayType.cs │ │ │ │ ├── DynamicType.cs │ │ │ │ ├── FunctionPointerType.cs │ │ │ │ ├── NamedType.cs │ │ │ │ ├── NullType.cs │ │ │ │ ├── Nullability.cs │ │ │ │ ├── PointerType.cs │ │ │ │ ├── TupleType.cs │ │ │ │ ├── Type.cs │ │ │ │ ├── TypeParameter.cs │ │ │ │ └── TypeParameterConstraints.cs │ │ │ ├── UserOperator.cs │ │ │ └── UsingDirective.cs │ │ ├── Extractor │ │ │ ├── Analyser.cs │ │ │ ├── AnalysisAction.cs │ │ │ ├── CompilerVersion.cs │ │ │ ├── Context.cs │ │ │ ├── Extractor.cs │ │ │ ├── IProgressMonitor.cs │ │ │ ├── Options.cs │ │ │ ├── StandaloneAnalyser.cs │ │ │ └── TracingAnalyser.cs │ │ ├── Kinds │ │ │ ├── ExprKind.cs │ │ │ ├── StmtKind.cs │ │ │ ├── TypeAnnotation.cs │ │ │ └── TypeKind.cs │ │ ├── Populators │ │ │ ├── AstLineCounter.cs │ │ │ ├── CommentPopulator.cs │ │ │ ├── CompilationUnitVisitor.cs │ │ │ ├── DirectiveVisitor.cs │ │ │ ├── Locations.cs │ │ │ ├── Symbols.cs │ │ │ ├── TypeContainerVisitor.cs │ │ │ └── TypeOrNamespaceVisitor.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── Semmle.Extraction.CSharp.csproj │ │ ├── SymbolExtensions.cs │ │ └── Tuples.cs │ ├── Semmle.Extraction.Tests │ │ ├── FilePattern.cs │ │ ├── Layout.cs │ │ ├── Options.cs │ │ ├── PathTransformer.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── Semmle.Extraction.Tests.csproj │ │ └── TrapWriter.cs │ ├── Semmle.Extraction │ │ ├── AssemblyScope.cs │ │ ├── Context.cs │ │ ├── Entities │ │ │ ├── Base │ │ │ │ ├── CachedEntityFactory.cs │ │ │ │ ├── CachedEntityFactoryExtensions.cs │ │ │ │ ├── CachedEntity`1.cs │ │ │ │ ├── Entity.cs │ │ │ │ ├── FreshEntity.cs │ │ │ │ ├── IEntity.cs │ │ │ │ ├── LabelledEntity.cs │ │ │ │ └── UnlabelledEntity.cs │ │ │ ├── ExtractionError.cs │ │ │ ├── File.cs │ │ │ ├── Folder.cs │ │ │ ├── GeneratedFile.cs │ │ │ ├── GeneratedLocation.cs │ │ │ ├── Location.cs │ │ │ └── SourceLocation.cs │ │ ├── Extractor │ │ │ ├── Extractor.cs │ │ │ ├── StandaloneExtractor.cs │ │ │ └── TracingExtractor.cs │ │ ├── FilePattern.cs │ │ ├── IExtractionScope.cs │ │ ├── Id.cs │ │ ├── InternalError.cs │ │ ├── Layout.cs │ │ ├── LocationExtensions.cs │ │ ├── Message.cs │ │ ├── Options.cs │ │ ├── PathTransformer.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── Semmle.Extraction.csproj │ │ ├── Semmle.Extraction.ruleset │ │ ├── SourceScope.cs │ │ ├── TrapExtensions.cs │ │ ├── TrapStackBehaviour.cs │ │ ├── TrapWriter.cs │ │ ├── Tuple.cs │ │ └── Tuples.cs │ ├── Semmle.Util.Tests │ │ ├── ActionMap.cs │ │ ├── CanonicalPathCache.cs │ │ ├── FileUtils.cs │ │ ├── LineCounterTest.cs │ │ ├── LongPaths.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── Semmle.Util.Tests.csproj │ │ └── TextTest.cs │ └── Semmle.Util │ │ ├── ActionMap.cs │ │ ├── CanonicalPathCache.cs │ │ ├── CommandLineExtensions.cs │ │ ├── CommandLineOptions.cs │ │ ├── DictionaryExtensions.cs │ │ ├── Enumerators.cs │ │ ├── FileRenamer.cs │ │ ├── FileUtils.cs │ │ ├── FuzzyDictionary.cs │ │ ├── IEnumerableExtensions.cs │ │ ├── LineCounter.cs │ │ ├── Logger.cs │ │ ├── LoggerUtils.cs │ │ ├── ProcessStartInfoExtensions.cs │ │ ├── Properties │ │ └── AssemblyInfo.cs │ │ ├── Semmle.Util.csproj │ │ ├── SharedReference.cs │ │ ├── StringBuilder.cs │ │ ├── StringExtensions.cs │ │ ├── TemporaryDirectory.cs │ │ ├── Text.cs │ │ ├── Win32.cs │ │ └── Worklist.cs ├── fix-whitespaces.sh ├── ql │ ├── examples │ │ ├── qlpack.yml │ │ ├── queries.xml │ │ └── snippets │ │ │ ├── array_access.ql │ │ │ ├── cast_expr.ql │ │ │ ├── catch_exception.ql │ │ │ ├── constructor_call.ql │ │ │ ├── empty_block.ql │ │ │ ├── empty_then.ql │ │ │ ├── eq_true.ql │ │ │ ├── extend_class.ql │ │ │ ├── extern_method.ql │ │ │ ├── field_read.ql │ │ │ ├── integer_literal.ql │ │ │ ├── method_call.ql │ │ │ ├── mutual_recursion.ql │ │ │ ├── null_argument.ql │ │ │ ├── override_method.ql │ │ │ ├── qualifier.ql │ │ │ ├── return_statement.ql │ │ │ ├── singleton_block.ql │ │ │ ├── switch_case.ql │ │ │ ├── ternary_conditional.ql │ │ │ ├── throw_exception.ql │ │ │ ├── todo_comment.ql │ │ │ ├── too_many_params.ql │ │ │ ├── try_finally.ql │ │ │ ├── unused_local_var.ql │ │ │ ├── unused_param.ql │ │ │ ├── void_return_type.ql │ │ │ └── volatile_field.ql │ ├── src │ │ ├── .project │ │ ├── .qlpath │ │ ├── .vs │ │ │ └── VSWorkspaceSettings.json │ │ ├── API Abuse │ │ │ ├── CallToGCCollect.qhelp │ │ │ ├── CallToGCCollect.ql │ │ │ ├── CallToGCCollectBad.cs │ │ │ ├── CallToObsoleteMethod.qhelp │ │ │ ├── CallToObsoleteMethod.ql │ │ │ ├── CallToObsoleteMethodBad.cs │ │ │ ├── CallToObsoleteMethodGood.cs │ │ │ ├── ClassDoesNotImplementEquals.qhelp │ │ │ ├── ClassDoesNotImplementEquals.ql │ │ │ ├── ClassDoesNotImplementEqualsBad.cs │ │ │ ├── ClassDoesNotImplementEqualsGood.cs │ │ │ ├── ClassImplementsICloneable.qhelp │ │ │ ├── ClassImplementsICloneable.ql │ │ │ ├── ClassImplementsICloneableBad.cs │ │ │ ├── Dispose.qll │ │ │ ├── DisposeNotCalledOnException.qhelp │ │ │ ├── DisposeNotCalledOnException.ql │ │ │ ├── DisposeNotCalledOnExceptionBad.cs │ │ │ ├── DisposeNotCalledOnExceptionGood.cs │ │ │ ├── FormatInvalid.qhelp │ │ │ ├── FormatInvalid.ql │ │ │ ├── FormatInvalidBad.cs │ │ │ ├── FormatInvalidGood.cs │ │ │ ├── FormatMissingArgumentBad.cs │ │ │ ├── FormatMissingArgumentGood.cs │ │ │ ├── FormatUnusedArgumentBad.cs │ │ │ ├── InconsistentEqualsGetHashCode.qhelp │ │ │ ├── InconsistentEqualsGetHashCode.ql │ │ │ ├── InconsistentEqualsGetHashCodeBad.cs │ │ │ ├── InconsistentEqualsGetHashCodeGood.cs │ │ │ ├── IncorrectCompareToSignature.qhelp │ │ │ ├── IncorrectCompareToSignature.ql │ │ │ ├── IncorrectCompareToSignatureBad.cs │ │ │ ├── IncorrectCompareToSignatureGood.cs │ │ │ ├── IncorrectEqualsSignature.qhelp │ │ │ ├── IncorrectEqualsSignature.ql │ │ │ ├── IncorrectEqualsSignatureBad.cs │ │ │ ├── IncorrectEqualsSignatureGood.cs │ │ │ ├── MissingDisposeCall.qhelp │ │ │ ├── MissingDisposeCall.ql │ │ │ ├── MissingDisposeCallBad.cs │ │ │ ├── MissingDisposeCallGood.cs │ │ │ ├── MissingDisposeMethod.qhelp │ │ │ ├── MissingDisposeMethod.ql │ │ │ ├── MissingDisposeMethodBad.cs │ │ │ ├── MissingDisposeMethodGood.cs │ │ │ ├── NoDisposeCallOnLocalIDisposable.qhelp │ │ │ ├── NoDisposeCallOnLocalIDisposable.ql │ │ │ ├── NoDisposeCallOnLocalIDisposableBad.cs │ │ │ ├── NoDisposeCallOnLocalIDisposableGood.cs │ │ │ ├── NonOverridingMethod.qhelp │ │ │ ├── NonOverridingMethod.ql │ │ │ ├── NonOverridingMethodBad.cs │ │ │ ├── NonOverridingMethodGood.cs │ │ │ ├── NullArgumentToEquals.qhelp │ │ │ ├── NullArgumentToEquals.ql │ │ │ ├── NullArgumentToEqualsBad.cs │ │ │ ├── NullArgumentToEqualsGood.cs │ │ │ ├── UncheckedReturnValue.qhelp │ │ │ ├── UncheckedReturnValue.ql │ │ │ └── UncheckedReturnValueBad.cs │ │ ├── ASP │ │ │ ├── BlockCodeResponseWrite.qhelp │ │ │ ├── BlockCodeResponseWrite.ql │ │ │ ├── BlockCodeResponseWriteBad.aspx │ │ │ ├── BlockCodeResponseWriteGood.aspx │ │ │ ├── ComplexInlineCode.qhelp │ │ │ ├── ComplexInlineCode.ql │ │ │ ├── ComplexInlineCodeBad.aspx │ │ │ ├── ComplexInlineCodeGood.aspx │ │ │ ├── NonInternationalizedText.qhelp │ │ │ ├── NonInternationalizedText.ql │ │ │ ├── NonInternationalizedTextBad.aspx │ │ │ ├── NonInternationalizedTextGood.aspx │ │ │ ├── SplitControlStructure.qhelp │ │ │ ├── SplitControlStructure.ql │ │ │ ├── SplitControlStructureBad.aspx │ │ │ └── SplitControlStructureGood.aspx │ │ ├── AlertSuppression.ql │ │ ├── Architecture │ │ │ ├── Dependencies │ │ │ │ ├── MutualDependency.qhelp │ │ │ │ ├── MutualDependency.ql │ │ │ │ ├── MutualDependencyBad.cs │ │ │ │ └── MutualDependencyGood.cs │ │ │ └── Refactoring Opportunities │ │ │ │ ├── FeatureEnvy.qhelp │ │ │ │ ├── FeatureEnvy.ql │ │ │ │ ├── FeatureEnvyBad.cs │ │ │ │ ├── FeatureEnvyGood.cs │ │ │ │ ├── InappropriateIntimacy.qhelp │ │ │ │ └── InappropriateIntimacy.ql │ │ ├── Bad Practices │ │ │ ├── CallsUnmanagedCode.cs │ │ │ ├── CallsUnmanagedCode.qhelp │ │ │ ├── CallsUnmanagedCode.ql │ │ │ ├── CallsUnmanagedCodeFix.cs │ │ │ ├── CatchOfNullReferenceException.cs │ │ │ ├── CatchOfNullReferenceException.qhelp │ │ │ ├── CatchOfNullReferenceException.ql │ │ │ ├── CatchOfNullReferenceExceptionFix.cs │ │ │ ├── Comments │ │ │ │ ├── CommentedOutCode.qhelp │ │ │ │ ├── CommentedOutCode.ql │ │ │ │ ├── CommentedOutCodeQuery.inc.qhelp │ │ │ │ ├── TodoComments.qhelp │ │ │ │ ├── TodoComments.ql │ │ │ │ └── TodoCommentsBad.cs │ │ │ ├── Control-Flow │ │ │ │ ├── ConstantCondition.qhelp │ │ │ │ ├── ConstantCondition.ql │ │ │ │ ├── ConstantConditionBad.cs │ │ │ │ └── ConstantConditionGood.cs │ │ │ ├── Declarations │ │ │ │ ├── EmptyInterface.qhelp │ │ │ │ ├── EmptyInterface.ql │ │ │ │ ├── EmptyInterfaceBad.cs │ │ │ │ ├── EmptyInterfaceGood.cs │ │ │ │ ├── LocalScopeVariableShadowsMember.qhelp │ │ │ │ ├── LocalScopeVariableShadowsMember.ql │ │ │ │ ├── LocalScopeVariableShadowsMemberBad.cs │ │ │ │ ├── LocalScopeVariableShadowsMemberGood.cs │ │ │ │ ├── NoConstantsOnly.qhelp │ │ │ │ ├── NoConstantsOnly.ql │ │ │ │ ├── NoConstantsOnlyBad.cs │ │ │ │ ├── TooManyRefParameters.qhelp │ │ │ │ ├── TooManyRefParameters.ql │ │ │ │ ├── TooManyRefParametersBad.cs │ │ │ │ └── TooManyRefParametersGood.cs │ │ │ ├── EmptyCatchBlock.cs │ │ │ ├── EmptyCatchBlock.qhelp │ │ │ ├── EmptyCatchBlock.ql │ │ │ ├── ErroneousClassCompare.cs │ │ │ ├── ErroneousClassCompare.qhelp │ │ │ ├── ErroneousClassCompare.ql │ │ │ ├── ErroneousClassCompareFix.cs │ │ │ ├── Implementation Hiding │ │ │ │ ├── AbstractToConcreteCollection.qhelp │ │ │ │ ├── AbstractToConcreteCollection.ql │ │ │ │ ├── AbstractToConcreteCollectionBad.cs │ │ │ │ ├── ExposeRepresentation.qhelp │ │ │ │ ├── ExposeRepresentation.ql │ │ │ │ ├── ExposeRepresentationBad.cs │ │ │ │ ├── ExposeRepresentationGood1.cs │ │ │ │ ├── ExposeRepresentationGood2.cs │ │ │ │ ├── StaticArray.qhelp │ │ │ │ ├── StaticArray.ql │ │ │ │ ├── StaticArrayBad.cs │ │ │ │ └── StaticArrayGood.cs │ │ │ ├── LeftoverDebugCode.cs │ │ │ ├── LeftoverDebugCode.qhelp │ │ │ ├── LeftoverDebugCode.ql │ │ │ ├── Magic Constants │ │ │ │ ├── MagicConstants.qll │ │ │ │ ├── MagicConstantsNumbers.cs │ │ │ │ ├── MagicConstantsNumbers.qhelp │ │ │ │ ├── MagicConstantsNumbers.ql │ │ │ │ ├── MagicConstantsString.cs │ │ │ │ ├── MagicConstantsString.qhelp │ │ │ │ ├── MagicConstantsString.ql │ │ │ │ ├── MagicNumbersUseConstant.cs │ │ │ │ ├── MagicNumbersUseConstant.qhelp │ │ │ │ ├── MagicNumbersUseConstant.ql │ │ │ │ ├── MagicStringsUseConstant.cs │ │ │ │ ├── MagicStringsUseConstant.qhelp │ │ │ │ └── MagicStringsUseConstant.ql │ │ │ ├── Naming Conventions │ │ │ │ ├── ConfusingMethodNames.cs │ │ │ │ ├── ConfusingMethodNames.qhelp │ │ │ │ ├── ConfusingMethodNames.ql │ │ │ │ ├── ConfusingOverridesNames.cs │ │ │ │ ├── ConfusingOverridesNames.qhelp │ │ │ │ ├── ConfusingOverridesNames.ql │ │ │ │ ├── ConstantNaming.cs │ │ │ │ ├── ConstantNaming.qhelp │ │ │ │ ├── ConstantNaming.ql │ │ │ │ ├── ControlNamePrefixes.qhelp │ │ │ │ ├── ControlNamePrefixes.ql │ │ │ │ ├── DefaultControlNames.qhelp │ │ │ │ ├── DefaultControlNames.ql │ │ │ │ ├── FieldMasksSuperField.cs │ │ │ │ ├── FieldMasksSuperField.qhelp │ │ │ │ ├── FieldMasksSuperField.ql │ │ │ │ ├── SameNameAsSuper.cs │ │ │ │ ├── SameNameAsSuper.qhelp │ │ │ │ ├── SameNameAsSuper.ql │ │ │ │ ├── VariableNameTooShort.cs │ │ │ │ ├── VariableNameTooShort.qhelp │ │ │ │ ├── VariableNameTooShort.ql │ │ │ │ └── VariableNameTooShortAcceptable.cs │ │ │ ├── UnmanagedCodeCheck.cs │ │ │ ├── UnmanagedCodeCheck.qhelp │ │ │ ├── UnmanagedCodeCheck.ql │ │ │ ├── UseOfHtmlInputHidden.cs │ │ │ ├── UseOfHtmlInputHidden.qhelp │ │ │ ├── UseOfHtmlInputHidden.ql │ │ │ ├── UseOfSystemOutputStream.cs │ │ │ ├── UseOfSystemOutputStream.qhelp │ │ │ ├── UseOfSystemOutputStream.ql │ │ │ ├── VirtualCallInConstructorOrDestructor.cs │ │ │ ├── VirtualCallInConstructorOrDestructor.qhelp │ │ │ └── VirtualCallInConstructorOrDestructor.ql │ │ ├── CSI │ │ │ ├── CompareIdenticalValues.cs │ │ │ ├── CompareIdenticalValues.qhelp │ │ │ ├── CompareIdenticalValues.ql │ │ │ ├── NullAlways.qhelp │ │ │ ├── NullAlways.ql │ │ │ ├── NullAlwaysBad.cs │ │ │ ├── NullAlwaysGood.cs │ │ │ ├── NullMaybe.qhelp │ │ │ ├── NullMaybe.ql │ │ │ ├── NullMaybeBad.cs │ │ │ └── NullMaybeGood.cs │ │ ├── Complexity │ │ │ ├── BlockWithTooManyStatements.qhelp │ │ │ ├── BlockWithTooManyStatements.ql │ │ │ ├── ComplexCondition.cs │ │ │ ├── ComplexCondition.qhelp │ │ │ └── ComplexCondition.ql │ │ ├── Concurrency │ │ │ ├── Concurrency.qll │ │ │ ├── DataMembers.qll │ │ │ ├── FutileSyncOnField.cs │ │ │ ├── FutileSyncOnField.qhelp │ │ │ ├── FutileSyncOnField.ql │ │ │ ├── FutileSyncOnFieldFix.cs │ │ │ ├── LockOrder.qhelp │ │ │ ├── LockOrder.ql │ │ │ ├── LockOrderBad.cs │ │ │ ├── LockOrderGood.cs │ │ │ ├── LockThis.cs │ │ │ ├── LockThis.qhelp │ │ │ ├── LockThis.ql │ │ │ ├── LockedWait.cs │ │ │ ├── LockedWait.qhelp │ │ │ ├── LockedWait.ql │ │ │ ├── LockedWaitFix.cs │ │ │ ├── SynchSetUnsynchGet.cs │ │ │ ├── SynchSetUnsynchGet.qhelp │ │ │ ├── SynchSetUnsynchGet.ql │ │ │ ├── SynchSetUnsynchGetFix.cs │ │ │ ├── ThreadCreation.qll │ │ │ ├── UnsafeLazyInitialization.qhelp │ │ │ ├── UnsafeLazyInitialization.ql │ │ │ ├── UnsafeLazyInitialization1.cs │ │ │ ├── UnsafeLazyInitialization2.cs │ │ │ ├── UnsafeLazyInitializationFix1.cs │ │ │ ├── UnsafeLazyInitializationFix2.cs │ │ │ ├── UnsafeLazyInitializationFix3.cs │ │ │ ├── UnsynchronizedStaticAccess.cs │ │ │ ├── UnsynchronizedStaticAccess.qhelp │ │ │ └── UnsynchronizedStaticAccess.ql │ │ ├── Configuration │ │ │ ├── EmptyPasswordInConfigurationFile.qhelp │ │ │ ├── EmptyPasswordInConfigurationFile.ql │ │ │ ├── PasswordInConfigurationFile.qhelp │ │ │ └── PasswordInConfigurationFile.ql │ │ ├── Dead Code │ │ │ ├── DeadCode.qll │ │ │ ├── DeadRefTypes.cs │ │ │ ├── DeadRefTypes.qhelp │ │ │ ├── DeadRefTypes.ql │ │ │ ├── DeadStoreOfLocal.qhelp │ │ │ ├── DeadStoreOfLocal.ql │ │ │ ├── DeadStoreOfLocalBad.cs │ │ │ ├── DeadStoreOfLocalGood.cs │ │ │ ├── NonAssignedFields.cs │ │ │ ├── NonAssignedFields.qhelp │ │ │ ├── NonAssignedFields.ql │ │ │ ├── UnusedField.cs │ │ │ ├── UnusedField.qhelp │ │ │ ├── UnusedField.ql │ │ │ ├── UnusedMethod.cs │ │ │ ├── UnusedMethod.qhelp │ │ │ └── UnusedMethod.ql │ │ ├── Diagnostics │ │ │ ├── CompilerError.qhelp │ │ │ ├── CompilerError.ql │ │ │ ├── CompilerMessage.qhelp │ │ │ ├── CompilerMessage.ql │ │ │ ├── ExtractorError.qhelp │ │ │ ├── ExtractorError.ql │ │ │ ├── ExtractorMessage.qhelp │ │ │ └── ExtractorMessage.ql │ │ ├── Documentation │ │ │ ├── Documentation.qll │ │ │ ├── XmldocClass.cs │ │ │ ├── XmldocExample.cs │ │ │ ├── XmldocExtraParam.cs │ │ │ ├── XmldocExtraParam.qhelp │ │ │ ├── XmldocExtraParam.ql │ │ │ ├── XmldocExtraTypeParam.qhelp │ │ │ ├── XmldocExtraTypeParam.ql │ │ │ ├── XmldocMethod.cs │ │ │ ├── XmldocMissing.qhelp │ │ │ ├── XmldocMissing.ql │ │ │ ├── XmldocMissingException.qhelp │ │ │ ├── XmldocMissingException.ql │ │ │ ├── XmldocMissingParam.qhelp │ │ │ ├── XmldocMissingParam.ql │ │ │ ├── XmldocMissingReturn.qhelp │ │ │ ├── XmldocMissingReturn.ql │ │ │ ├── XmldocMissingSummary.qhelp │ │ │ ├── XmldocMissingSummary.ql │ │ │ ├── XmldocMissingTypeParam.qhelp │ │ │ ├── XmldocMissingTypeParam.ql │ │ │ └── XmldocTypeParam.cs │ │ ├── IDEContextual.qll │ │ ├── Input Validation │ │ │ ├── UseOfFileUpload.cs │ │ │ ├── UseOfFileUpload.qhelp │ │ │ ├── UseOfFileUpload.ql │ │ │ ├── ValueShadowing.cs │ │ │ ├── ValueShadowing.qhelp │ │ │ ├── ValueShadowing.ql │ │ │ ├── ValueShadowingFix.cs │ │ │ ├── ValueShadowingServerVariable.cs │ │ │ ├── ValueShadowingServerVariable.qhelp │ │ │ ├── ValueShadowingServerVariable.ql │ │ │ └── ValueShadowingServerVariableFix.cs │ │ ├── Language Abuse │ │ │ ├── CastThisToTypeParameter.cs │ │ │ ├── CastThisToTypeParameter.qhelp │ │ │ ├── CastThisToTypeParameter.ql │ │ │ ├── CastThisToTypeParameterFix.cs │ │ │ ├── CatchOfGenericException.cs │ │ │ ├── CatchOfGenericException.qhelp │ │ │ ├── CatchOfGenericException.ql │ │ │ ├── CatchOfGenericExceptionFix.cs │ │ │ ├── ChainedIs.cs │ │ │ ├── ChainedIs.qhelp │ │ │ ├── ChainedIs.ql │ │ │ ├── ChainedIsFix1.cs │ │ │ ├── ChainedIsFix2.cs │ │ │ ├── DubiousDowncastOfThis.cs │ │ │ ├── DubiousDowncastOfThis.qhelp │ │ │ ├── DubiousDowncastOfThis.ql │ │ │ ├── DubiousTypeTestOfThis.cs │ │ │ ├── DubiousTypeTestOfThis.qhelp │ │ │ ├── DubiousTypeTestOfThis.ql │ │ │ ├── ForeachCapture.cs │ │ │ ├── ForeachCapture.qhelp │ │ │ ├── ForeachCapture.ql │ │ │ ├── ForeachCaptureFix.cs │ │ │ ├── MissedReadonlyOpportunity.qhelp │ │ │ ├── MissedReadonlyOpportunity.ql │ │ │ ├── MissedReadonlyOpportunityBad.cs │ │ │ ├── MissedReadonlyOpportunityGood.cs │ │ │ ├── MissedTernaryOpportunity.cs │ │ │ ├── MissedTernaryOpportunity.qhelp │ │ │ ├── MissedTernaryOpportunity.ql │ │ │ ├── MissedTernaryOpportunityFix.cs │ │ │ ├── MissedUsingOpportunity.cs │ │ │ ├── MissedUsingOpportunity.qhelp │ │ │ ├── MissedUsingOpportunity.ql │ │ │ ├── MissedUsingOpportunityFix.cs │ │ │ ├── NestedIf.cs │ │ │ ├── NestedIf.qhelp │ │ │ ├── NestedIf.ql │ │ │ ├── NestedIfFix.cs │ │ │ ├── RethrowException.cs │ │ │ ├── RethrowException.qhelp │ │ │ ├── RethrowException.ql │ │ │ ├── RethrowExceptionFix.cs │ │ │ ├── SimplifyBoolExpr.qhelp │ │ │ ├── SimplifyBoolExpr.ql │ │ │ ├── SimplifyBoolExprBad.cs │ │ │ ├── SimplifyBoolExprGood.cs │ │ │ ├── UnusedPropertyValue.cs │ │ │ ├── UnusedPropertyValue.qhelp │ │ │ ├── UnusedPropertyValue.ql │ │ │ ├── UnusedPropertyValueFix.cs │ │ │ ├── UselessCastToSelf.cs │ │ │ ├── UselessCastToSelf.qhelp │ │ │ ├── UselessCastToSelf.ql │ │ │ ├── UselessCastToSelfFix.cs │ │ │ ├── UselessIsBeforeAs.cs │ │ │ ├── UselessIsBeforeAs.qhelp │ │ │ ├── UselessIsBeforeAs.ql │ │ │ ├── UselessIsBeforeAsFix.cs │ │ │ ├── UselessNullCoalescingExpression.cs │ │ │ ├── UselessNullCoalescingExpression.qhelp │ │ │ ├── UselessNullCoalescingExpression.ql │ │ │ ├── UselessTypeTest.cs │ │ │ ├── UselessTypeTest.qhelp │ │ │ ├── UselessTypeTest.ql │ │ │ ├── UselessUpcast.qhelp │ │ │ ├── UselessUpcast.ql │ │ │ └── UselessUpcastBad.cs │ │ ├── Likely Bugs │ │ │ ├── BadCheckOdd.cs │ │ │ ├── BadCheckOdd.qhelp │ │ │ ├── BadCheckOdd.ql │ │ │ ├── BadCheckOddGood.cs │ │ │ ├── Collections │ │ │ │ ├── ContainerLengthCmpOffByOne.cs │ │ │ │ ├── ContainerLengthCmpOffByOne.qhelp │ │ │ │ ├── ContainerLengthCmpOffByOne.ql │ │ │ │ ├── ContainerSizeCmpZero.cs │ │ │ │ ├── ContainerSizeCmpZero.qhelp │ │ │ │ ├── ContainerSizeCmpZero.ql │ │ │ │ ├── ContainerSizeCmpZeroGood.cs │ │ │ │ ├── ReadOnlyContainer.cs │ │ │ │ ├── ReadOnlyContainer.qhelp │ │ │ │ ├── ReadOnlyContainer.ql │ │ │ │ ├── ReadOnlyContainerFix.cs │ │ │ │ ├── WriteOnlyContainer.cs │ │ │ │ ├── WriteOnlyContainer.qhelp │ │ │ │ ├── WriteOnlyContainer.ql │ │ │ │ └── WriteOnlyContainerFix.cs │ │ │ ├── ConstantComparison.cs │ │ │ ├── ConstantComparison.qhelp │ │ │ ├── ConstantComparison.ql │ │ │ ├── ConstantComparisonFix.cs │ │ │ ├── DangerousNonShortCircuitLogic.cs │ │ │ ├── DangerousNonShortCircuitLogic.qhelp │ │ │ ├── DangerousNonShortCircuitLogic.ql │ │ │ ├── DangerousNonShortCircuitLogicFix.cs │ │ │ ├── Dynamic │ │ │ │ ├── BadDynamicCall.cs │ │ │ │ ├── BadDynamicCall.qhelp │ │ │ │ └── BadDynamicCall.ql │ │ │ ├── EqualityCheckOnFloats.cs │ │ │ ├── EqualityCheckOnFloats.qhelp │ │ │ ├── EqualityCheckOnFloats.ql │ │ │ ├── EqualityCheckOnFloatsFix.cs │ │ │ ├── EqualsArray.cs │ │ │ ├── EqualsArray.qhelp │ │ │ ├── EqualsArray.ql │ │ │ ├── EqualsArrayFix.cs │ │ │ ├── EqualsUsesAs.cs │ │ │ ├── EqualsUsesAs.qhelp │ │ │ ├── EqualsUsesAs.ql │ │ │ ├── EqualsUsesIs.cs │ │ │ ├── EqualsUsesIs.qhelp │ │ │ ├── EqualsUsesIs.ql │ │ │ ├── HashedButNoHash.cs │ │ │ ├── HashedButNoHash.qhelp │ │ │ ├── HashedButNoHash.ql │ │ │ ├── ICryptoTransform.qll │ │ │ ├── ImpossibleArrayCast.cs │ │ │ ├── ImpossibleArrayCast.qhelp │ │ │ ├── ImpossibleArrayCast.ql │ │ │ ├── IncomparableEquals.cs │ │ │ ├── IncomparableEquals.qhelp │ │ │ ├── IncomparableEquals.ql │ │ │ ├── InconsistentCompareTo.cs │ │ │ ├── InconsistentCompareTo.qhelp │ │ │ ├── InconsistentCompareTo.ql │ │ │ ├── LeapYear │ │ │ │ ├── UnsafeYearConstruction.qhelp │ │ │ │ ├── UnsafeYearConstruction.ql │ │ │ │ ├── UnsafeYearConstructionBad.cs │ │ │ │ └── UnsafeYearConstructionGood.cs │ │ │ ├── MishandlingJapaneseEra.cs │ │ │ ├── MishandlingJapaneseEra.qhelp │ │ │ ├── MishandlingJapaneseEra.ql │ │ │ ├── NestedLoopsSameVariable.cs │ │ │ ├── NestedLoopsSameVariable.qhelp │ │ │ ├── NestedLoopsSameVariable.ql │ │ │ ├── ObjectComparison.cs │ │ │ ├── ObjectComparison.qhelp │ │ │ ├── ObjectComparison.ql │ │ │ ├── ParallelSink.qll │ │ │ ├── PossibleLossOfPrecision.cs │ │ │ ├── PossibleLossOfPrecision.qhelp │ │ │ ├── PossibleLossOfPrecision.ql │ │ │ ├── PossibleLossOfPrecision2.cs │ │ │ ├── PossibleLossOfPrecisionFix.cs │ │ │ ├── PossibleLossOfPrecisionFix2.cs │ │ │ ├── RandomUsedOnce.cs │ │ │ ├── RandomUsedOnce.qhelp │ │ │ ├── RandomUsedOnce.ql │ │ │ ├── RandomUsedOnceFix.cs │ │ │ ├── RecursiveEquals.cs │ │ │ ├── RecursiveEquals.qhelp │ │ │ ├── RecursiveEquals.ql │ │ │ ├── RecursiveEqualsFix.cs │ │ │ ├── RecursiveOperatorEquals.cs │ │ │ ├── RecursiveOperatorEquals.qhelp │ │ │ ├── RecursiveOperatorEquals.ql │ │ │ ├── RecursiveOperatorEqualsFix.cs │ │ │ ├── ReferenceEqualsOnValueTypes.cs │ │ │ ├── ReferenceEqualsOnValueTypes.qhelp │ │ │ ├── ReferenceEqualsOnValueTypes.ql │ │ │ ├── SelfAssignment.cs │ │ │ ├── SelfAssignment.qhelp │ │ │ ├── SelfAssignment.ql │ │ │ ├── Statements │ │ │ │ ├── EmptyBlock.cs │ │ │ │ ├── EmptyBlock.qhelp │ │ │ │ ├── EmptyBlock.ql │ │ │ │ ├── EmptyLockStatement.cs │ │ │ │ ├── EmptyLockStatement.qhelp │ │ │ │ ├── EmptyLockStatement.ql │ │ │ │ ├── EmptyLockStatementFix.cs │ │ │ │ ├── UseBraces.cs │ │ │ │ ├── UseBraces.qhelp │ │ │ │ ├── UseBraces.ql │ │ │ │ └── UseBracesFix.cs │ │ │ ├── StaticFieldWrittenByInstance.cs │ │ │ ├── StaticFieldWrittenByInstance.qhelp │ │ │ ├── StaticFieldWrittenByInstance.ql │ │ │ ├── StringBuilderCharInit.cs │ │ │ ├── StringBuilderCharInit.qhelp │ │ │ ├── StringBuilderCharInit.ql │ │ │ ├── StringBuilderCharInitFix.cs │ │ │ ├── ThreadUnSafeICryptoTransformBad.cs │ │ │ ├── ThreadUnSafeICryptoTransformGood.cs │ │ │ ├── ThreadUnSafeICryptoTransformLambdaBad.cs │ │ │ ├── ThreadUnSafeICryptoTransformLambdaGood.cs │ │ │ ├── ThreadUnsafeICryptoTransform.qhelp │ │ │ ├── ThreadUnsafeICryptoTransform.ql │ │ │ ├── ThreadUnsafeICryptoTransformLambda.qhelp │ │ │ ├── ThreadUnsafeICryptoTransformLambda.ql │ │ │ ├── ThreadUnsafeICryptoTransformOverview.inc.qhelp │ │ │ ├── UncheckedCastInEquals.cs │ │ │ ├── UncheckedCastInEquals.qhelp │ │ │ ├── UncheckedCastInEquals.ql │ │ │ └── UncheckedCastInEqualsFix.cs │ │ ├── Linq │ │ │ ├── BadMultipleIteration.cs │ │ │ ├── BadMultipleIteration.qhelp │ │ │ ├── BadMultipleIteration.ql │ │ │ ├── BadMultipleIterationFix.cs │ │ │ ├── Helpers.qll │ │ │ ├── MissedAllOpportunity.cs │ │ │ ├── MissedAllOpportunity.qhelp │ │ │ ├── MissedAllOpportunity.ql │ │ │ ├── MissedAllOpportunityFix.cs │ │ │ ├── MissedCastOpportunity.cs │ │ │ ├── MissedCastOpportunity.qhelp │ │ │ ├── MissedCastOpportunity.ql │ │ │ ├── MissedCastOpportunityFix.cs │ │ │ ├── MissedOfTypeOpportunity.cs │ │ │ ├── MissedOfTypeOpportunity.qhelp │ │ │ ├── MissedOfTypeOpportunity.ql │ │ │ ├── MissedOfTypeOpportunityFix.cs │ │ │ ├── MissedSelectOpportunity.cs │ │ │ ├── MissedSelectOpportunity.qhelp │ │ │ ├── MissedSelectOpportunity.ql │ │ │ ├── MissedSelectOpportunityFix.cs │ │ │ ├── MissedWhereOpportunity.cs │ │ │ ├── MissedWhereOpportunity.qhelp │ │ │ ├── MissedWhereOpportunity.ql │ │ │ ├── MissedWhereOpportunityFix.cs │ │ │ ├── RedundantSelect.cs │ │ │ ├── RedundantSelect.qhelp │ │ │ └── RedundantSelect.ql │ │ ├── Metrics │ │ │ ├── Callables │ │ │ │ ├── CCyclomaticComplexity.cs │ │ │ │ ├── CCyclomaticComplexity.png │ │ │ │ ├── CCyclomaticComplexity.qhelp │ │ │ │ ├── CCyclomaticComplexity.ql │ │ │ │ ├── CLinesOfCode.qhelp │ │ │ │ ├── CLinesOfCode.ql │ │ │ │ ├── CLinesOfComment.qhelp │ │ │ │ ├── CLinesOfComment.ql │ │ │ │ ├── CNumberOfParameters.qhelp │ │ │ │ ├── CNumberOfParameters.ql │ │ │ │ ├── CNumberOfStatements.qhelp │ │ │ │ ├── CNumberOfStatements.ql │ │ │ │ ├── CPercentageOfComments.qhelp │ │ │ │ ├── CPercentageOfComments.ql │ │ │ │ ├── StatementNestingDepth.cs │ │ │ │ ├── StatementNestingDepth.qhelp │ │ │ │ ├── StatementNestingDepth.ql │ │ │ │ └── StatementNestingDepthFix.cs │ │ │ ├── Dependencies │ │ │ │ ├── ExternalDependencies.ql │ │ │ │ └── ExternalDependenciesSourceLinks.ql │ │ │ ├── Files │ │ │ │ ├── CommentedOutCodeMetricOverview.inc.qhelp │ │ │ │ ├── CommentedOutCodeReferences.inc.qhelp │ │ │ │ ├── FCommentRatio.qhelp │ │ │ │ ├── FCommentRatio.ql │ │ │ │ ├── FCyclomaticComplexity.cs │ │ │ │ ├── FCyclomaticComplexity.qhelp │ │ │ │ ├── FCyclomaticComplexity.ql │ │ │ │ ├── FCyclomaticComplexity_ControlFlow.gv │ │ │ │ ├── FCyclomaticComplexity_ControlFlow.png │ │ │ │ ├── FLines.ql │ │ │ │ ├── FLinesOfCode.qhelp │ │ │ │ ├── FLinesOfCode.ql │ │ │ │ ├── FLinesOfComment.qhelp │ │ │ │ ├── FLinesOfComment.ql │ │ │ │ ├── FLinesOfCommentedCode.qhelp │ │ │ │ ├── FLinesOfCommentedCode.ql │ │ │ │ ├── FNumberOfClasses.qhelp │ │ │ │ ├── FNumberOfClasses.ql │ │ │ │ ├── FNumberOfInterfaces.qhelp │ │ │ │ ├── FNumberOfInterfaces.ql │ │ │ │ ├── FNumberOfStructs.qhelp │ │ │ │ ├── FNumberOfStructs.ql │ │ │ │ ├── FNumberOfTests.qhelp │ │ │ │ ├── FNumberOfTests.ql │ │ │ │ ├── FNumberOfUsingNamespaces.qhelp │ │ │ │ ├── FNumberOfUsingNamespaces.ql │ │ │ │ ├── FSelfContainedness.qhelp │ │ │ │ └── FSelfContainedness.ql │ │ │ └── RefTypes │ │ │ │ ├── TAfferentCoupling.qhelp │ │ │ │ ├── TAfferentCoupling.ql │ │ │ │ ├── TEfferentCoupling.qhelp │ │ │ │ ├── TEfferentCoupling.ql │ │ │ │ ├── TInheritanceDepth.cs │ │ │ │ ├── TInheritanceDepth.qhelp │ │ │ │ ├── TInheritanceDepth.ql │ │ │ │ ├── TInheritanceDepthFix.cs │ │ │ │ ├── TLackOfCohesionCK.cs │ │ │ │ ├── TLackOfCohesionCK.qhelp │ │ │ │ ├── TLackOfCohesionCK.ql │ │ │ │ ├── TLackOfCohesionCKTable.inc.qhelp │ │ │ │ ├── TLackOfCohesionHS.cs │ │ │ │ ├── TLackOfCohesionHS.qhelp │ │ │ │ ├── TLackOfCohesionHS.ql │ │ │ │ ├── TLackOfCohesionHSFormula.png │ │ │ │ ├── TNumberOfCallables.qhelp │ │ │ │ ├── TNumberOfCallables.ql │ │ │ │ ├── TNumberOfEvents.cs │ │ │ │ ├── TNumberOfEvents.qhelp │ │ │ │ ├── TNumberOfEvents.ql │ │ │ │ ├── TNumberOfEventsFix.cs │ │ │ │ ├── TNumberOfFields.cs │ │ │ │ ├── TNumberOfFields.qhelp │ │ │ │ ├── TNumberOfFields.ql │ │ │ │ ├── TNumberOfFieldsFix.cs │ │ │ │ ├── TNumberOfIndexers.qhelp │ │ │ │ ├── TNumberOfIndexers.ql │ │ │ │ ├── TNumberOfNonConstFields.cs │ │ │ │ ├── TNumberOfNonConstFields.qhelp │ │ │ │ ├── TNumberOfNonConstFields.ql │ │ │ │ ├── TNumberOfNonConstFieldsFix.cs │ │ │ │ ├── TNumberOfProperties.cs │ │ │ │ ├── TNumberOfProperties.qhelp │ │ │ │ ├── TNumberOfProperties.ql │ │ │ │ ├── TNumberOfPropertiesFix.cs │ │ │ │ ├── TNumberOfStatements.qhelp │ │ │ │ ├── TNumberOfStatements.ql │ │ │ │ ├── TResponse.qhelp │ │ │ │ ├── TResponse.ql │ │ │ │ ├── TSizeOfAPI.qhelp │ │ │ │ ├── TSizeOfAPI.ql │ │ │ │ ├── TSpecialisationIndex.qhelp │ │ │ │ ├── TSpecialisationIndex.ql │ │ │ │ ├── TUnmanagedCode.cs │ │ │ │ ├── TUnmanagedCode.qhelp │ │ │ │ ├── TUnmanagedCode.ql │ │ │ │ └── TUnmanagedCodeFix.cs │ │ ├── Performance │ │ │ ├── StringBuilderInLoop.cs │ │ │ ├── StringBuilderInLoop.qhelp │ │ │ ├── StringBuilderInLoop.ql │ │ │ ├── StringBuilderInLoopFix.cs │ │ │ ├── StringConcatenationInLoop.cs │ │ │ ├── StringConcatenationInLoop.qhelp │ │ │ ├── StringConcatenationInLoop.ql │ │ │ ├── StringConcatenationInLoopFix.cs │ │ │ ├── UseTryGetValue.cs │ │ │ ├── UseTryGetValue.qhelp │ │ │ ├── UseTryGetValue.ql │ │ │ └── UseTryGetValueFix.cs │ │ ├── Security Features │ │ │ ├── CWE-011 │ │ │ │ ├── ASPNetDebug.qhelp │ │ │ │ ├── ASPNetDebug.ql │ │ │ │ ├── Web.config.bad │ │ │ │ └── Web.config.good │ │ │ ├── CWE-016 │ │ │ │ ├── ASPNetMaxRequestLength.qhelp │ │ │ │ ├── ASPNetMaxRequestLength.ql │ │ │ │ ├── ASPNetPagesValidateRequest.qhelp │ │ │ │ ├── ASPNetPagesValidateRequest.ql │ │ │ │ ├── ASPNetPagesValidateRequestBad.config │ │ │ │ ├── ASPNetPagesValidateRequestGood.config │ │ │ │ ├── ASPNetRequestValidationMode.qhelp │ │ │ │ ├── ASPNetRequestValidationMode.ql │ │ │ │ ├── ASPNetRequestValidationModeBad.config │ │ │ │ ├── ASPNetRequestValidationModeGood.config │ │ │ │ ├── Web.config.ASPNetMaxRequestLength.bad │ │ │ │ └── Web.config.ASPNetMaxRequestLength.good │ │ │ ├── CWE-020 │ │ │ │ ├── ExternalAPISinkExample.cs │ │ │ │ ├── ExternalAPIsUsedWithUntrustedData.qhelp │ │ │ │ ├── ExternalAPIsUsedWithUntrustedData.ql │ │ │ │ ├── RuntimeChecksBypass.qhelp │ │ │ │ ├── RuntimeChecksBypass.ql │ │ │ │ ├── RuntimeChecksBypassBad.cs │ │ │ │ ├── RuntimeChecksBypassGood.cs │ │ │ │ ├── UntrustedDataToExternalAPI.qhelp │ │ │ │ └── UntrustedDataToExternalAPI.ql │ │ │ ├── CWE-022 │ │ │ │ ├── TaintedPath.cs │ │ │ │ ├── TaintedPath.qhelp │ │ │ │ ├── TaintedPath.ql │ │ │ │ ├── ZipSlip.qhelp │ │ │ │ ├── ZipSlip.ql │ │ │ │ ├── ZipSlipBad.cs │ │ │ │ └── ZipSlipGood.cs │ │ │ ├── CWE-078 │ │ │ │ ├── CommandInjection.cs │ │ │ │ ├── CommandInjection.qhelp │ │ │ │ ├── CommandInjection.ql │ │ │ │ ├── StoredCommandInjection.qhelp │ │ │ │ └── StoredCommandInjection.ql │ │ │ ├── CWE-079 │ │ │ │ ├── StoredXSS.qhelp │ │ │ │ ├── StoredXSS.ql │ │ │ │ ├── XSS.cs │ │ │ │ ├── XSS.qhelp │ │ │ │ └── XSS.ql │ │ │ ├── CWE-089 │ │ │ │ ├── SecondOrderSqlInjection.qhelp │ │ │ │ ├── SecondOrderSqlInjection.ql │ │ │ │ ├── SqlInjection.cs │ │ │ │ ├── SqlInjection.qhelp │ │ │ │ └── SqlInjection.ql │ │ │ ├── CWE-090 │ │ │ │ ├── LDAPInjection.cs │ │ │ │ ├── LDAPInjection.qhelp │ │ │ │ ├── LDAPInjection.ql │ │ │ │ ├── StoredLDAPInjection.qhelp │ │ │ │ └── StoredLDAPInjection.ql │ │ │ ├── CWE-091 │ │ │ │ ├── XMLInjection.qhelp │ │ │ │ ├── XMLInjection.ql │ │ │ │ ├── XMLInjectionBad.cs │ │ │ │ └── XMLInjectionGood.cs │ │ │ ├── CWE-094 │ │ │ │ ├── CodeInjection.cs │ │ │ │ ├── CodeInjection.qhelp │ │ │ │ └── CodeInjection.ql │ │ │ ├── CWE-099 │ │ │ │ ├── ResourceInjection.cs │ │ │ │ ├── ResourceInjection.qhelp │ │ │ │ └── ResourceInjection.ql │ │ │ ├── CWE-112 │ │ │ │ ├── MissingXMLValidation.cs │ │ │ │ ├── MissingXMLValidation.qhelp │ │ │ │ └── MissingXMLValidation.ql │ │ │ ├── CWE-114 │ │ │ │ ├── AssemblyPathInjection.qhelp │ │ │ │ ├── AssemblyPathInjection.ql │ │ │ │ ├── AssemblyPathInjectionBad.cs │ │ │ │ └── AssemblyPathInjectionGood.cs │ │ │ ├── CWE-117 │ │ │ │ ├── LogForging.cs │ │ │ │ ├── LogForging.qhelp │ │ │ │ └── LogForging.ql │ │ │ ├── CWE-119 │ │ │ │ ├── LocalUnvalidatedArithmetic.cs │ │ │ │ ├── LocalUnvalidatedArithmetic.qhelp │ │ │ │ └── LocalUnvalidatedArithmetic.ql │ │ │ ├── CWE-134 │ │ │ │ ├── UncontrolledFormatString.qhelp │ │ │ │ ├── UncontrolledFormatString.ql │ │ │ │ └── UncontrolledFormatStringBad.cs │ │ │ ├── CWE-201 │ │ │ │ ├── ExposureInTransmittedData.qhelp │ │ │ │ ├── ExposureInTransmittedData.ql │ │ │ │ ├── TransmittedException.cs │ │ │ │ └── TransmittedPassword.cs │ │ │ ├── CWE-209 │ │ │ │ ├── ExceptionInformationExposure.cs │ │ │ │ ├── ExceptionInformationExposure.qhelp │ │ │ │ └── ExceptionInformationExposure.ql │ │ │ ├── CWE-248 │ │ │ │ ├── BadWeb.config │ │ │ │ ├── GoodWeb.config │ │ │ │ ├── MissingASPNETGlobalErrorHandler.qhelp │ │ │ │ ├── MissingASPNETGlobalErrorHandler.ql │ │ │ │ └── global.asax.cs │ │ │ ├── CWE-312 │ │ │ │ ├── CleartextStorage.cs │ │ │ │ ├── CleartextStorage.qhelp │ │ │ │ └── CleartextStorage.ql │ │ │ ├── CWE-321 │ │ │ │ ├── HardcodedEncryptionKey.ql │ │ │ │ ├── HardcodedEncryptionKeyBad.cs │ │ │ │ └── HardcodedSymmetricEncryptionKey.ql │ │ │ ├── CWE-327 │ │ │ │ ├── DontInstallRootCert.ql │ │ │ │ ├── InsecureSQLConnection.qhelp │ │ │ │ ├── InsecureSQLConnection.ql │ │ │ │ ├── InsecureSQLConnectionBad.cs │ │ │ │ └── InsecureSQLConnectionGood.cs │ │ │ ├── CWE-352 │ │ │ │ ├── MissingAntiForgeryTokenValidation.cs │ │ │ │ ├── MissingAntiForgeryTokenValidation.qhelp │ │ │ │ └── MissingAntiForgeryTokenValidation.ql │ │ │ ├── CWE-359 │ │ │ │ ├── ExposureOfPrivateInformation.cs │ │ │ │ ├── ExposureOfPrivateInformation.qhelp │ │ │ │ └── ExposureOfPrivateInformation.ql │ │ │ ├── CWE-384 │ │ │ │ ├── AbandonSession.cs │ │ │ │ ├── AbandonSession.qhelp │ │ │ │ ├── AbandonSession.ql │ │ │ │ └── AbandonSessionFix.cs │ │ │ ├── CWE-451 │ │ │ │ ├── MissingXFrameOptions.cs │ │ │ │ ├── MissingXFrameOptions.qhelp │ │ │ │ ├── MissingXFrameOptions.ql │ │ │ │ └── Web.config │ │ │ ├── CWE-502 │ │ │ │ ├── DeserializedDelegate.qhelp │ │ │ │ ├── DeserializedDelegate.ql │ │ │ │ ├── DeserializedDelegateBad.cs │ │ │ │ ├── UnsafeDeserialization.qhelp │ │ │ │ ├── UnsafeDeserialization.ql │ │ │ │ ├── UnsafeDeserializationBad.cs │ │ │ │ ├── UnsafeDeserializationGood.cs │ │ │ │ ├── UnsafeDeserializationUntrustedInput.qhelp │ │ │ │ ├── UnsafeDeserializationUntrustedInput.ql │ │ │ │ ├── UnsafeDeserializationUntrustedInputBad.cs │ │ │ │ └── UnsafeDeserializationUntrustedInputGood.cs │ │ │ ├── CWE-548 │ │ │ │ ├── ASPNetDirectoryListing.qhelp │ │ │ │ ├── ASPNetDirectoryListing.ql │ │ │ │ ├── Web.config.bad │ │ │ │ └── Web.config.good │ │ │ ├── CWE-601 │ │ │ │ ├── UrlRedirect.cs │ │ │ │ ├── UrlRedirect.qhelp │ │ │ │ └── UrlRedirect.ql │ │ │ ├── CWE-611 │ │ │ │ ├── InsecureXml.cs │ │ │ │ ├── UntrustedDataInsecureXml.qhelp │ │ │ │ ├── UntrustedDataInsecureXml.ql │ │ │ │ ├── UseXmlSecureResolver.qhelp │ │ │ │ └── UseXmlSecureResolver.ql │ │ │ ├── CWE-614 │ │ │ │ ├── RequireSSL.qhelp │ │ │ │ ├── RequireSSL.ql │ │ │ │ └── Web.config │ │ │ ├── CWE-643 │ │ │ │ ├── StoredXPathInjection.qhelp │ │ │ │ ├── StoredXPathInjection.ql │ │ │ │ ├── XPathInjection.cs │ │ │ │ ├── XPathInjection.qhelp │ │ │ │ └── XPathInjection.ql │ │ │ ├── CWE-730 │ │ │ │ ├── ReDoS.cs │ │ │ │ ├── ReDoS.qhelp │ │ │ │ ├── ReDoS.ql │ │ │ │ ├── RegexInjection.cs │ │ │ │ ├── RegexInjection.qhelp │ │ │ │ └── RegexInjection.ql │ │ │ ├── CWE-798 │ │ │ │ ├── HardcodedConnectionString.qhelp │ │ │ │ ├── HardcodedConnectionString.ql │ │ │ │ ├── HardcodedCredentials.cs │ │ │ │ ├── HardcodedCredentials.qhelp │ │ │ │ └── HardcodedCredentials.ql │ │ │ ├── CWE-807 │ │ │ │ ├── ConditionalBypass.cs │ │ │ │ ├── ConditionalBypass.qhelp │ │ │ │ └── ConditionalBypass.ql │ │ │ ├── CWE-838 │ │ │ │ ├── HtmlEncode.cs │ │ │ │ ├── InappropriateEncoding.qhelp │ │ │ │ ├── InappropriateEncoding.ql │ │ │ │ ├── SqlEncode.cs │ │ │ │ └── UrlEncode.cs │ │ │ ├── CookieWithOverlyBroadDomain.cs │ │ │ ├── CookieWithOverlyBroadDomain.qhelp │ │ │ ├── CookieWithOverlyBroadDomain.ql │ │ │ ├── CookieWithOverlyBroadDomainFix.cs │ │ │ ├── CookieWithOverlyBroadPath.cs │ │ │ ├── CookieWithOverlyBroadPath.qhelp │ │ │ ├── CookieWithOverlyBroadPath.ql │ │ │ ├── CookieWithOverlyBroadPathFix.cs │ │ │ ├── Encryption using ECB.qhelp │ │ │ ├── Encryption using ECB.ql │ │ │ ├── HeaderCheckingDisabled.qhelp │ │ │ ├── HeaderCheckingDisabled.ql │ │ │ ├── InadequateRSAPadding.cs │ │ │ ├── InadequateRSAPadding.qhelp │ │ │ ├── InadequateRSAPadding.ql │ │ │ ├── InsecureRandomness.cs │ │ │ ├── InsecureRandomness.qhelp │ │ │ ├── InsecureRandomness.ql │ │ │ ├── InsufficientKeySize.cs │ │ │ ├── InsufficientKeySize.qhelp │ │ │ ├── InsufficientKeySize.ql │ │ │ ├── PersistentCookie.cs │ │ │ ├── PersistentCookie.qhelp │ │ │ ├── PersistentCookie.ql │ │ │ ├── WeakEncryption.cs │ │ │ ├── WeakEncryption.qhelp │ │ │ └── WeakEncryption.ql │ │ ├── Stubs │ │ │ ├── MinimalStubsFromSource.ql │ │ │ ├── Stubs.qll │ │ │ └── make_stubs.py │ │ ├── Useless code │ │ │ ├── DefaultToString.qhelp │ │ │ ├── DefaultToString.ql │ │ │ ├── DefaultToString.qll │ │ │ ├── DefaultToStringBad.cs │ │ │ ├── DefaultToStringGood.cs │ │ │ ├── FutileConditional.cs │ │ │ ├── FutileConditional.qhelp │ │ │ ├── FutileConditional.ql │ │ │ ├── IntGetHashCode.cs │ │ │ ├── IntGetHashCode.qhelp │ │ │ ├── IntGetHashCode.ql │ │ │ ├── IntGetHashCodeFix.cs │ │ │ ├── PointlessForwardingMethod.cs │ │ │ ├── PointlessForwardingMethod.qhelp │ │ │ ├── PointlessForwardingMethod.ql │ │ │ ├── PointlessForwardingMethodFix.cs │ │ │ ├── RedundantToStringCall.qhelp │ │ │ ├── RedundantToStringCall.ql │ │ │ ├── RedundantToStringCallBad.cs │ │ │ ├── RedundantToStringCallGood.cs │ │ │ ├── UnusedLabel.cs │ │ │ ├── UnusedLabel.qhelp │ │ │ └── UnusedLabel.ql │ │ ├── cil.qll │ │ ├── codeql-suites │ │ │ ├── csharp-code-scanning.qls │ │ │ ├── csharp-lgtm-full.qls │ │ │ ├── csharp-lgtm.qls │ │ │ ├── csharp-security-and-quality.qls │ │ │ ├── csharp-security-extended.qls │ │ │ └── solorigate.qls │ │ ├── csharp.qll │ │ ├── default.qll │ │ ├── definitions.ql │ │ ├── definitions.qll │ │ ├── dotnet.qll │ │ ├── experimental │ │ │ ├── CWE-099 │ │ │ │ ├── TaintedWebClient.cs │ │ │ │ ├── TaintedWebClient.qhelp │ │ │ │ ├── TaintedWebClient.ql │ │ │ │ └── TaintedWebClientLib.qll │ │ │ ├── README.md │ │ │ ├── Security Features │ │ │ │ ├── Serialization │ │ │ │ │ ├── DataSetSerialization.inc.qhelp │ │ │ │ │ ├── DataSetSerialization.qll │ │ │ │ │ ├── DefiningDatasetRelatedType.qhelp │ │ │ │ │ ├── DefiningDatasetRelatedType.ql │ │ │ │ │ ├── DefiningPotentiallyUnsafeXmlSerializer.qhelp │ │ │ │ │ ├── DefiningPotentiallyUnsafeXmlSerializer.ql │ │ │ │ │ ├── UnsafeTypeUsedDataContractSerializer.qhelp │ │ │ │ │ ├── UnsafeTypeUsedDataContractSerializer.ql │ │ │ │ │ ├── XmlDeserializationWithDataSet.qhelp │ │ │ │ │ └── XmlDeserializationWithDataSet.ql │ │ │ │ ├── backdoor │ │ │ │ │ ├── DangerousNativeFunctionCall.qhelp │ │ │ │ │ ├── DangerousNativeFunctionCall.ql │ │ │ │ │ ├── PotentialTimeBomb.qhelp │ │ │ │ │ ├── PotentialTimeBomb.ql │ │ │ │ │ ├── ProcessNameToHashTaintFlow.qhelp │ │ │ │ │ └── ProcessNameToHashTaintFlow.ql │ │ │ │ └── campaign │ │ │ │ │ ├── Solorigate-Readme.md │ │ │ │ │ └── Solorigate │ │ │ │ │ ├── ModifiedFnvFunctionDetection.qhelp │ │ │ │ │ ├── ModifiedFnvFunctionDetection.ql │ │ │ │ │ ├── NumberOfKnownCommandsAboveThreshold.qhelp │ │ │ │ │ ├── NumberOfKnownCommandsAboveThreshold.ql │ │ │ │ │ ├── NumberOfKnownHashesAboveThreshold.qhelp │ │ │ │ │ ├── NumberOfKnownHashesAboveThreshold.ql │ │ │ │ │ ├── NumberOfKnownLiteralsAboveThreshold.qhelp │ │ │ │ │ ├── NumberOfKnownLiteralsAboveThreshold.ql │ │ │ │ │ ├── NumberOfKnownMethodNamesAboveThreshold.qhelp │ │ │ │ │ ├── NumberOfKnownMethodNamesAboveThreshold.ql │ │ │ │ │ ├── Solorigate.inc.qhelp │ │ │ │ │ ├── Solorigate.qll │ │ │ │ │ ├── SwallowEverythingExceptionHandler.qhelp │ │ │ │ │ └── SwallowEverythingExceptionHandler.ql │ │ │ ├── code │ │ │ │ └── csharp │ │ │ │ │ └── Cryptography │ │ │ │ │ └── NonCryptographicHashes.qll │ │ │ └── ir │ │ │ │ ├── IR.qll │ │ │ │ ├── IRConfiguration.qll │ │ │ │ ├── IRConsistency.ql │ │ │ │ ├── PrintIR.ql │ │ │ │ ├── PrintIR.qll │ │ │ │ ├── Util.qll │ │ │ │ ├── ValueNumbering.qll │ │ │ │ ├── implementation │ │ │ │ ├── EdgeKind.qll │ │ │ │ ├── IRConfiguration.qll │ │ │ │ ├── IRType.qll │ │ │ │ ├── MemoryAccessKind.qll │ │ │ │ ├── Opcode.qll │ │ │ │ ├── TempVariableTag.qll │ │ │ │ ├── UseSoundEscapeAnalysis.qll │ │ │ │ ├── internal │ │ │ │ │ ├── AliasedSSAStub.qll │ │ │ │ │ ├── EdgeKindInternal.qll │ │ │ │ │ ├── IRConfigurationInternal.qll │ │ │ │ │ ├── IRFunctionBase.qll │ │ │ │ │ ├── IRFunctionBaseInternal.qll │ │ │ │ │ ├── IRTypeInternal.qll │ │ │ │ │ ├── OpcodeImports.qll │ │ │ │ │ ├── OperandTag.qll │ │ │ │ │ ├── OperandTagInternal.qll │ │ │ │ │ ├── TIRVariable.qll │ │ │ │ │ ├── TIRVariableInternal.qll │ │ │ │ │ ├── TInstruction.qll │ │ │ │ │ ├── TInstructionImports.qll │ │ │ │ │ ├── TInstructionInternal.qll │ │ │ │ │ ├── TOperand.qll │ │ │ │ │ └── TempVariableTagInternal.qll │ │ │ │ ├── raw │ │ │ │ │ ├── IR.qll │ │ │ │ │ ├── IRBlock.qll │ │ │ │ │ ├── IRConsistency.ql │ │ │ │ │ ├── IRConsistency.qll │ │ │ │ │ ├── IRFunction.qll │ │ │ │ │ ├── IRVariable.qll │ │ │ │ │ ├── Instruction.qll │ │ │ │ │ ├── Operand.qll │ │ │ │ │ ├── PrintIR.ql │ │ │ │ │ ├── PrintIR.qll │ │ │ │ │ ├── constant │ │ │ │ │ │ ├── ConstantAnalysis.qll │ │ │ │ │ │ ├── PrintConstantAnalysis.qll │ │ │ │ │ │ └── internal │ │ │ │ │ │ │ └── ConstantAnalysisInternal.qll │ │ │ │ │ ├── gvn │ │ │ │ │ │ ├── PrintValueNumbering.qll │ │ │ │ │ │ ├── ValueNumbering.qll │ │ │ │ │ │ └── internal │ │ │ │ │ │ │ ├── ValueNumberingImports.qll │ │ │ │ │ │ │ └── ValueNumberingInternal.qll │ │ │ │ │ └── internal │ │ │ │ │ │ ├── IRBlockImports.qll │ │ │ │ │ │ ├── IRConstruction.qll │ │ │ │ │ │ ├── IRFunctionImports.qll │ │ │ │ │ │ ├── IRImports.qll │ │ │ │ │ │ ├── IRInternal.qll │ │ │ │ │ │ ├── IRVariableImports.qll │ │ │ │ │ │ ├── InstructionImports.qll │ │ │ │ │ │ ├── InstructionTag.qll │ │ │ │ │ │ ├── OperandImports.qll │ │ │ │ │ │ ├── OperandInternal.qll │ │ │ │ │ │ ├── PrintIRImports.qll │ │ │ │ │ │ ├── TranslatedCall.qll │ │ │ │ │ │ ├── TranslatedCondition.qll │ │ │ │ │ │ ├── TranslatedDeclaration.qll │ │ │ │ │ │ ├── TranslatedElement.qll │ │ │ │ │ │ ├── TranslatedExpr.qll │ │ │ │ │ │ ├── TranslatedFunction.qll │ │ │ │ │ │ ├── TranslatedInitialization.qll │ │ │ │ │ │ ├── TranslatedStmt.qll │ │ │ │ │ │ ├── common │ │ │ │ │ │ ├── TranslatedCallBase.qll │ │ │ │ │ │ ├── TranslatedConditionBase.qll │ │ │ │ │ │ ├── TranslatedDeclarationBase.qll │ │ │ │ │ │ └── TranslatedExprBase.qll │ │ │ │ │ │ ├── desugar │ │ │ │ │ │ ├── Common.qll │ │ │ │ │ │ ├── Delegate.qll │ │ │ │ │ │ ├── Foreach.qll │ │ │ │ │ │ ├── Lock.qll │ │ │ │ │ │ ├── Using.qll │ │ │ │ │ │ └── internal │ │ │ │ │ │ │ ├── TranslatedCompilerGeneratedCall.qll │ │ │ │ │ │ │ ├── TranslatedCompilerGeneratedCondition.qll │ │ │ │ │ │ │ ├── TranslatedCompilerGeneratedDeclaration.qll │ │ │ │ │ │ │ ├── TranslatedCompilerGeneratedElement.qll │ │ │ │ │ │ │ ├── TranslatedCompilerGeneratedExpr.qll │ │ │ │ │ │ │ └── TranslatedCompilerGeneratedStmt.qll │ │ │ │ │ │ └── reachability │ │ │ │ │ │ ├── Dominance.qll │ │ │ │ │ │ ├── DominanceInternal.qll │ │ │ │ │ │ ├── PrintDominance.qll │ │ │ │ │ │ ├── PrintReachableBlock.qll │ │ │ │ │ │ ├── ReachableBlock.qll │ │ │ │ │ │ └── ReachableBlockInternal.qll │ │ │ │ └── unaliased_ssa │ │ │ │ │ ├── IR.qll │ │ │ │ │ ├── IRBlock.qll │ │ │ │ │ ├── IRConsistency.ql │ │ │ │ │ ├── IRConsistency.qll │ │ │ │ │ ├── IRFunction.qll │ │ │ │ │ ├── IRVariable.qll │ │ │ │ │ ├── Instruction.qll │ │ │ │ │ ├── Operand.qll │ │ │ │ │ ├── PrintIR.ql │ │ │ │ │ ├── PrintIR.qll │ │ │ │ │ ├── constant │ │ │ │ │ ├── ConstantAnalysis.qll │ │ │ │ │ ├── PrintConstantAnalysis.qll │ │ │ │ │ └── internal │ │ │ │ │ │ └── ConstantAnalysisInternal.qll │ │ │ │ │ ├── gvn │ │ │ │ │ ├── PrintValueNumbering.qll │ │ │ │ │ ├── ValueNumbering.qll │ │ │ │ │ └── internal │ │ │ │ │ │ ├── ValueNumberingImports.qll │ │ │ │ │ │ └── ValueNumberingInternal.qll │ │ │ │ │ └── internal │ │ │ │ │ ├── AliasAnalysis.qll │ │ │ │ │ ├── AliasAnalysisImports.qll │ │ │ │ │ ├── AliasAnalysisInternal.qll │ │ │ │ │ ├── AliasConfiguration.qll │ │ │ │ │ ├── AliasConfigurationImports.qll │ │ │ │ │ ├── IRBlockImports.qll │ │ │ │ │ ├── IRFunctionImports.qll │ │ │ │ │ ├── IRImports.qll │ │ │ │ │ ├── IRInternal.qll │ │ │ │ │ ├── IRVariableImports.qll │ │ │ │ │ ├── InstructionImports.qll │ │ │ │ │ ├── OperandImports.qll │ │ │ │ │ ├── OperandInternal.qll │ │ │ │ │ ├── PrintIRImports.qll │ │ │ │ │ ├── PrintSSA.qll │ │ │ │ │ ├── SSAConsistency.ql │ │ │ │ │ ├── SSAConsistency.qll │ │ │ │ │ ├── SSAConstruction.qll │ │ │ │ │ ├── SSAConstructionImports.qll │ │ │ │ │ ├── SSAConstructionInternal.qll │ │ │ │ │ ├── SimpleSSA.qll │ │ │ │ │ ├── SimpleSSAImports.qll │ │ │ │ │ ├── SimpleSSAPublicImports.qll │ │ │ │ │ └── reachability │ │ │ │ │ ├── Dominance.qll │ │ │ │ │ ├── DominanceInternal.qll │ │ │ │ │ ├── PrintDominance.qll │ │ │ │ │ ├── PrintReachableBlock.qll │ │ │ │ │ ├── ReachableBlock.qll │ │ │ │ │ └── ReachableBlockInternal.qll │ │ │ │ ├── internal │ │ │ │ ├── CSharpType.qll │ │ │ │ ├── IRCSharpLanguage.qll │ │ │ │ ├── IRGuards.qll │ │ │ │ ├── IRUtilities.qll │ │ │ │ ├── IntegerConstant.qll │ │ │ │ ├── IntegerInterval.qll │ │ │ │ ├── IntegerPartial.qll │ │ │ │ ├── Overlap.qll │ │ │ │ └── TempVariableTag.qll │ │ │ │ └── rangeanalysis │ │ │ │ ├── Bound.qll │ │ │ │ ├── RangeAnalysis.qll │ │ │ │ ├── RangeUtils.qll │ │ │ │ └── SignAnalysis.qll │ │ ├── filters │ │ │ └── ClassifyFiles.ql │ │ ├── genkindenum.pl │ │ ├── localDefinitions.ql │ │ ├── localReferences.ql │ │ ├── printAst.ql │ │ ├── qlpack.yml │ │ ├── queries.xml │ │ ├── semmle │ │ │ ├── code │ │ │ │ ├── asp │ │ │ │ │ ├── AspNet.qll │ │ │ │ │ └── WebConfig.qll │ │ │ │ ├── cil │ │ │ │ │ ├── Access.qll │ │ │ │ │ ├── Attribute.qll │ │ │ │ │ ├── BasicBlock.qll │ │ │ │ │ ├── CIL.qll │ │ │ │ │ ├── CallableReturns.qll │ │ │ │ │ ├── ConsistencyChecks.qll │ │ │ │ │ ├── ControlFlow.qll │ │ │ │ │ ├── CustomModifierReceiver.qll │ │ │ │ │ ├── DataFlow.qll │ │ │ │ │ ├── Declaration.qll │ │ │ │ │ ├── Element.qll │ │ │ │ │ ├── Generics.qll │ │ │ │ │ ├── Handler.qll │ │ │ │ │ ├── Instruction.qll │ │ │ │ │ ├── InstructionGroups.qll │ │ │ │ │ ├── Instructions.qll │ │ │ │ │ ├── Method.qll │ │ │ │ │ ├── Parameterizable.qll │ │ │ │ │ ├── Ssa.qll │ │ │ │ │ ├── Stubs.qll │ │ │ │ │ ├── Type.qll │ │ │ │ │ ├── Types.qll │ │ │ │ │ ├── Variable.qll │ │ │ │ │ └── internal │ │ │ │ │ │ ├── SsaImpl.qll │ │ │ │ │ │ ├── SsaImplCommon.qll │ │ │ │ │ │ └── SsaImplSpecific.qll │ │ │ │ ├── csharp │ │ │ │ │ ├── AnnotatedType.qll │ │ │ │ │ ├── Assignable.qll │ │ │ │ │ ├── Attribute.qll │ │ │ │ │ ├── Caching.qll │ │ │ │ │ ├── Callable.qll │ │ │ │ │ ├── Chaining.qll │ │ │ │ │ ├── Comments.qll │ │ │ │ │ ├── Conversion.qll │ │ │ │ │ ├── Element.qll │ │ │ │ │ ├── Enclosing.qll │ │ │ │ │ ├── Event.qll │ │ │ │ │ ├── ExprOrStmtParent.qll │ │ │ │ │ ├── File.qll │ │ │ │ │ ├── Generics.qll │ │ │ │ │ ├── Implements.qll │ │ │ │ │ ├── Location.qll │ │ │ │ │ ├── Member.qll │ │ │ │ │ ├── Modifier.qll │ │ │ │ │ ├── Namespace.qll │ │ │ │ │ ├── Preprocessor.qll │ │ │ │ │ ├── PrintAst.ql │ │ │ │ │ ├── PrintAst.qll │ │ │ │ │ ├── Property.qll │ │ │ │ │ ├── Stmt.qll │ │ │ │ │ ├── Type.qll │ │ │ │ │ ├── TypeRef.qll │ │ │ │ │ ├── Unification.qll │ │ │ │ │ ├── Using.qll │ │ │ │ │ ├── Variable.qll │ │ │ │ │ ├── XML.qll │ │ │ │ │ ├── commons │ │ │ │ │ │ ├── Assertions.qll │ │ │ │ │ │ ├── Collections.qll │ │ │ │ │ │ ├── ComparisonTest.qll │ │ │ │ │ │ ├── Compilation.qll │ │ │ │ │ │ ├── ConsistencyChecks.qll │ │ │ │ │ │ ├── Constants.qll │ │ │ │ │ │ ├── Diagnostics.qll │ │ │ │ │ │ ├── Disposal.qll │ │ │ │ │ │ ├── GeneratedCode.qll │ │ │ │ │ │ ├── Loggers.qll │ │ │ │ │ │ ├── Strings.qll │ │ │ │ │ │ ├── StructuralComparison.qll │ │ │ │ │ │ ├── TargetFramework.qll │ │ │ │ │ │ └── Util.qll │ │ │ │ │ ├── controlflow │ │ │ │ │ │ ├── BasicBlocks.qll │ │ │ │ │ │ ├── ControlFlowElement.qll │ │ │ │ │ │ ├── ControlFlowGraph.qll │ │ │ │ │ │ ├── Guards.qll │ │ │ │ │ │ └── internal │ │ │ │ │ │ │ ├── Completion.qll │ │ │ │ │ │ │ ├── ControlFlowGraphImpl.qll │ │ │ │ │ │ │ ├── NonReturning.qll │ │ │ │ │ │ │ ├── PreBasicBlocks.qll │ │ │ │ │ │ │ ├── PreSsa.qll │ │ │ │ │ │ │ ├── Splitting.qll │ │ │ │ │ │ │ ├── SuccessorType.qll │ │ │ │ │ │ │ └── pressa │ │ │ │ │ │ │ ├── SsaImplCommon.qll │ │ │ │ │ │ │ └── SsaImplSpecific.qll │ │ │ │ │ ├── dataflow │ │ │ │ │ │ ├── Bound.qll │ │ │ │ │ │ ├── CallContext.qll │ │ │ │ │ │ ├── DataFlow.qll │ │ │ │ │ │ ├── DataFlow2.qll │ │ │ │ │ │ ├── DataFlow3.qll │ │ │ │ │ │ ├── DataFlow4.qll │ │ │ │ │ │ ├── DataFlow5.qll │ │ │ │ │ │ ├── FlowSummary.qll │ │ │ │ │ │ ├── LibraryTypeDataFlow.qll │ │ │ │ │ │ ├── ModulusAnalysis.qll │ │ │ │ │ │ ├── Nullness.qll │ │ │ │ │ │ ├── SSA.qll │ │ │ │ │ │ ├── SignAnalysis.qll │ │ │ │ │ │ ├── TaintTracking.qll │ │ │ │ │ │ ├── TaintTracking2.qll │ │ │ │ │ │ ├── TaintTracking3.qll │ │ │ │ │ │ ├── TaintTracking4.qll │ │ │ │ │ │ ├── TaintTracking5.qll │ │ │ │ │ │ ├── flowsources │ │ │ │ │ │ │ ├── PublicCallableParameter.qll │ │ │ │ │ │ │ └── Remote.qll │ │ │ │ │ │ └── internal │ │ │ │ │ │ │ ├── BaseSSA.qll │ │ │ │ │ │ │ ├── CallableReturns.qll │ │ │ │ │ │ │ ├── ControlFlowReachability.qll │ │ │ │ │ │ │ ├── DataFlowDispatch.qll │ │ │ │ │ │ │ ├── DataFlowImpl.qll │ │ │ │ │ │ │ ├── DataFlowImpl2.qll │ │ │ │ │ │ │ ├── DataFlowImpl3.qll │ │ │ │ │ │ │ ├── DataFlowImpl4.qll │ │ │ │ │ │ │ ├── DataFlowImpl5.qll │ │ │ │ │ │ │ ├── DataFlowImplCommon.qll │ │ │ │ │ │ │ ├── DataFlowImplConsistency.qll │ │ │ │ │ │ │ ├── DataFlowImplSpecific.qll │ │ │ │ │ │ │ ├── DataFlowPrivate.qll │ │ │ │ │ │ │ ├── DataFlowPublic.qll │ │ │ │ │ │ │ ├── DelegateDataFlow.qll │ │ │ │ │ │ │ ├── FlowSummaryImpl.qll │ │ │ │ │ │ │ ├── FlowSummaryImplSpecific.qll │ │ │ │ │ │ │ ├── SsaImpl.qll │ │ │ │ │ │ │ ├── SsaImplCommon.qll │ │ │ │ │ │ │ ├── SsaImplSpecific.qll │ │ │ │ │ │ │ ├── Steps.qll │ │ │ │ │ │ │ ├── TaintTrackingPrivate.qll │ │ │ │ │ │ │ ├── TaintTrackingPublic.qll │ │ │ │ │ │ │ ├── basessa │ │ │ │ │ │ │ ├── SsaImplCommon.qll │ │ │ │ │ │ │ └── SsaImplSpecific.qll │ │ │ │ │ │ │ ├── rangeanalysis │ │ │ │ │ │ │ ├── BoundSpecific.qll │ │ │ │ │ │ │ ├── ConstantUtils.qll │ │ │ │ │ │ │ ├── ControlFlowReachability.qll │ │ │ │ │ │ │ ├── ModulusAnalysisSpecific.qll │ │ │ │ │ │ │ ├── RangeUtils.qll │ │ │ │ │ │ │ ├── Sign.qll │ │ │ │ │ │ │ ├── SignAnalysisCommon.qll │ │ │ │ │ │ │ ├── SignAnalysisSpecific.qll │ │ │ │ │ │ │ ├── SsaReadPositionCommon.qll │ │ │ │ │ │ │ ├── SsaReadPositionSpecific.qll │ │ │ │ │ │ │ └── SsaUtils.qll │ │ │ │ │ │ │ ├── tainttracking1 │ │ │ │ │ │ │ ├── TaintTrackingImpl.qll │ │ │ │ │ │ │ └── TaintTrackingParameter.qll │ │ │ │ │ │ │ ├── tainttracking2 │ │ │ │ │ │ │ ├── TaintTrackingImpl.qll │ │ │ │ │ │ │ └── TaintTrackingParameter.qll │ │ │ │ │ │ │ ├── tainttracking3 │ │ │ │ │ │ │ ├── TaintTrackingImpl.qll │ │ │ │ │ │ │ └── TaintTrackingParameter.qll │ │ │ │ │ │ │ ├── tainttracking4 │ │ │ │ │ │ │ ├── TaintTrackingImpl.qll │ │ │ │ │ │ │ └── TaintTrackingParameter.qll │ │ │ │ │ │ │ └── tainttracking5 │ │ │ │ │ │ │ ├── TaintTrackingImpl.qll │ │ │ │ │ │ │ └── TaintTrackingParameter.qll │ │ │ │ │ ├── dispatch │ │ │ │ │ │ ├── Dispatch.qll │ │ │ │ │ │ ├── OverridableCallable.qll │ │ │ │ │ │ └── RuntimeCallable.qll │ │ │ │ │ ├── exprs │ │ │ │ │ │ ├── Access.qll │ │ │ │ │ │ ├── ArithmeticOperation.qll │ │ │ │ │ │ ├── Assignment.qll │ │ │ │ │ │ ├── BitwiseOperation.qll │ │ │ │ │ │ ├── Call.qll │ │ │ │ │ │ ├── ComparisonOperation.qll │ │ │ │ │ │ ├── Creation.qll │ │ │ │ │ │ ├── Dynamic.qll │ │ │ │ │ │ ├── Expr.qll │ │ │ │ │ │ ├── Literal.qll │ │ │ │ │ │ └── LogicalOperation.qll │ │ │ │ │ ├── frameworks │ │ │ │ │ │ ├── EntityFramework.qll │ │ │ │ │ │ ├── Format.qll │ │ │ │ │ │ ├── JsonNET.qll │ │ │ │ │ │ ├── Microsoft.qll │ │ │ │ │ │ ├── Moq.qll │ │ │ │ │ │ ├── NHibernate.qll │ │ │ │ │ │ ├── Sql.qll │ │ │ │ │ │ ├── System.qll │ │ │ │ │ │ ├── Test.qll │ │ │ │ │ │ ├── WCF.qll │ │ │ │ │ │ ├── microsoft │ │ │ │ │ │ │ ├── AspNetCore.qll │ │ │ │ │ │ │ └── Owin.qll │ │ │ │ │ │ ├── system │ │ │ │ │ │ │ ├── CodeDom.qll │ │ │ │ │ │ │ ├── Collections.qll │ │ │ │ │ │ │ ├── Data.qll │ │ │ │ │ │ │ ├── Diagnostics.qll │ │ │ │ │ │ │ ├── DirectoryServices.qll │ │ │ │ │ │ │ ├── IO.qll │ │ │ │ │ │ │ ├── Linq.qll │ │ │ │ │ │ │ ├── Net.qll │ │ │ │ │ │ │ ├── Reflection.qll │ │ │ │ │ │ │ ├── Runtime.qll │ │ │ │ │ │ │ ├── Security.qll │ │ │ │ │ │ │ ├── Text.qll │ │ │ │ │ │ │ ├── Threading.qll │ │ │ │ │ │ │ ├── Web.qll │ │ │ │ │ │ │ ├── Windows.qll │ │ │ │ │ │ │ ├── Xml.qll │ │ │ │ │ │ │ ├── codedom │ │ │ │ │ │ │ │ └── Compiler.qll │ │ │ │ │ │ │ ├── collections │ │ │ │ │ │ │ │ ├── Generic.qll │ │ │ │ │ │ │ │ └── Specialized.qll │ │ │ │ │ │ │ ├── data │ │ │ │ │ │ │ │ ├── Common.qll │ │ │ │ │ │ │ │ ├── Entity.qll │ │ │ │ │ │ │ │ ├── SqlClient.qll │ │ │ │ │ │ │ │ └── SqlServerCe.qll │ │ │ │ │ │ │ ├── diagnostics │ │ │ │ │ │ │ │ └── Contracts.qll │ │ │ │ │ │ │ ├── directoryservices │ │ │ │ │ │ │ │ └── Protocols.qll │ │ │ │ │ │ │ ├── io │ │ │ │ │ │ │ │ └── Compression.qll │ │ │ │ │ │ │ ├── linq │ │ │ │ │ │ │ │ └── Expressions.qll │ │ │ │ │ │ │ ├── net │ │ │ │ │ │ │ │ └── Mail.qll │ │ │ │ │ │ │ ├── runtime │ │ │ │ │ │ │ │ ├── CompilerServices.qll │ │ │ │ │ │ │ │ └── InteropServices.qll │ │ │ │ │ │ │ ├── security │ │ │ │ │ │ │ │ ├── Cryptography.qll │ │ │ │ │ │ │ │ └── cryptography │ │ │ │ │ │ │ │ │ ├── SymmetricAlgorithm.qll │ │ │ │ │ │ │ │ │ └── X509Certificates.qll │ │ │ │ │ │ │ ├── text │ │ │ │ │ │ │ │ └── RegularExpressions.qll │ │ │ │ │ │ │ ├── threading │ │ │ │ │ │ │ │ └── Tasks.qll │ │ │ │ │ │ │ ├── web │ │ │ │ │ │ │ │ ├── Helpers.qll │ │ │ │ │ │ │ │ ├── Http.qll │ │ │ │ │ │ │ │ ├── Mvc.qll │ │ │ │ │ │ │ │ ├── Security.qll │ │ │ │ │ │ │ │ ├── Services.qll │ │ │ │ │ │ │ │ ├── UI.qll │ │ │ │ │ │ │ │ ├── WebPages.qll │ │ │ │ │ │ │ │ └── ui │ │ │ │ │ │ │ │ │ └── WebControls.qll │ │ │ │ │ │ │ ├── windows │ │ │ │ │ │ │ │ └── Forms.qll │ │ │ │ │ │ │ └── xml │ │ │ │ │ │ │ │ └── XPath.qll │ │ │ │ │ │ └── test │ │ │ │ │ │ │ ├── NUnit.qll │ │ │ │ │ │ │ ├── VisualStudio.qll │ │ │ │ │ │ │ └── XUnit.qll │ │ │ │ │ ├── metrics │ │ │ │ │ │ ├── Complexity.qll │ │ │ │ │ │ ├── Coupling.qll │ │ │ │ │ │ └── ExternalDependencies.qll │ │ │ │ │ ├── security │ │ │ │ │ │ ├── PrivateData.qll │ │ │ │ │ │ ├── Sanitizers.qll │ │ │ │ │ │ ├── SensitiveActions.qll │ │ │ │ │ │ ├── cryptography │ │ │ │ │ │ │ ├── EncryptionKeyDataFlow.qll │ │ │ │ │ │ │ └── HardcodedSymmetricEncryptionKey.qll │ │ │ │ │ │ ├── dataflow │ │ │ │ │ │ │ ├── CleartextStorage.qll │ │ │ │ │ │ │ ├── CodeInjection.qll │ │ │ │ │ │ │ ├── CommandInjection.qll │ │ │ │ │ │ │ ├── ConditionalBypass.qll │ │ │ │ │ │ │ ├── ExposureOfPrivateInformation.qll │ │ │ │ │ │ │ ├── ExternalAPIs.qll │ │ │ │ │ │ │ ├── HardcodedCredentials.qll │ │ │ │ │ │ │ ├── LDAPInjection.qll │ │ │ │ │ │ │ ├── LogForging.qll │ │ │ │ │ │ │ ├── MissingXMLValidation.qll │ │ │ │ │ │ │ ├── ReDoS.qll │ │ │ │ │ │ │ ├── RegexInjection.qll │ │ │ │ │ │ │ ├── ResourceInjection.qll │ │ │ │ │ │ │ ├── SqlInjection.qll │ │ │ │ │ │ │ ├── TaintedPath.qll │ │ │ │ │ │ │ ├── UnsafeDeserialization.qll │ │ │ │ │ │ │ ├── UrlRedirect.qll │ │ │ │ │ │ │ ├── XMLEntityInjection.qll │ │ │ │ │ │ │ ├── XPathInjection.qll │ │ │ │ │ │ │ ├── XSS.qll │ │ │ │ │ │ │ ├── ZipSlip.qll │ │ │ │ │ │ │ ├── flowsinks │ │ │ │ │ │ │ │ ├── Email.qll │ │ │ │ │ │ │ │ ├── ExternalLocationSink.qll │ │ │ │ │ │ │ │ ├── Html.qll │ │ │ │ │ │ │ │ └── Remote.qll │ │ │ │ │ │ │ └── flowsources │ │ │ │ │ │ │ │ ├── Local.qll │ │ │ │ │ │ │ │ ├── Remote.qll │ │ │ │ │ │ │ │ └── Stored.qll │ │ │ │ │ │ └── xml │ │ │ │ │ │ │ └── InsecureXML.qll │ │ │ │ │ └── serialization │ │ │ │ │ │ ├── Deserializers.qll │ │ │ │ │ │ └── Serialization.qll │ │ │ │ └── dotnet │ │ │ │ │ ├── Callable.qll │ │ │ │ │ ├── Declaration.qll │ │ │ │ │ ├── DotNet.qll │ │ │ │ │ ├── Element.qll │ │ │ │ │ ├── Expr.qll │ │ │ │ │ ├── Generics.qll │ │ │ │ │ ├── Namespace.qll │ │ │ │ │ ├── Parameterizable.qll │ │ │ │ │ ├── Type.qll │ │ │ │ │ ├── Utils.qll │ │ │ │ │ └── Variable.qll │ │ │ └── files │ │ │ │ └── FileSystem.qll │ │ ├── semmlecode.csharp.dbscheme │ │ └── semmlecode.csharp.dbscheme.stats │ └── test │ │ ├── .gitignore │ │ ├── .project │ │ ├── .qlpath │ │ ├── experimental │ │ ├── README.md │ │ ├── Security Features │ │ │ ├── Serialization │ │ │ │ ├── DefiningDatasetRelatedType.expected │ │ │ │ ├── DefiningDatasetRelatedType.qlref │ │ │ │ ├── DefiningPotentiallyUnsafeXmlSerializer.expected │ │ │ │ ├── DefiningPotentiallyUnsafeXmlSerializer.qlref │ │ │ │ ├── UnsafeTypeUsedDataContractSerializer.expected │ │ │ │ ├── UnsafeTypeUsedDataContractSerializer.qlref │ │ │ │ ├── XmlDeserializationWithDataSet.expected │ │ │ │ ├── XmlDeserializationWithDataSet.qlref │ │ │ │ └── test0.cs │ │ │ ├── backdoor │ │ │ │ ├── DangerousNativeFunctionCall.expected │ │ │ │ ├── DangerousNativeFunctionCall.qlref │ │ │ │ ├── PotentialTimeBomb.expected │ │ │ │ ├── PotentialTimeBomb.qlref │ │ │ │ ├── ProcessNameToHashTaintFlow.expected │ │ │ │ ├── ProcessNameToHashTaintFlow.qlref │ │ │ │ └── test.cs │ │ │ └── campaign │ │ │ │ └── Solorigate │ │ │ │ ├── ModifiedFnvFunctionDetection.expected │ │ │ │ ├── ModifiedFnvFunctionDetection.qlref │ │ │ │ ├── NumberOfKnownCommandsAboveThreshold.expected │ │ │ │ ├── NumberOfKnownCommandsAboveThreshold.qlref │ │ │ │ ├── NumberOfKnownHashesAboveThreshold.expected │ │ │ │ ├── NumberOfKnownHashesAboveThreshold.qlref │ │ │ │ ├── NumberOfKnownLiteralsAboveThreshold.expected │ │ │ │ ├── NumberOfKnownLiteralsAboveThreshold.qlref │ │ │ │ ├── NumberOfKnownMethodNamesAboveThreshold.expected │ │ │ │ ├── NumberOfKnownMethodNamesAboveThreshold.qlref │ │ │ │ ├── SwallowEverythingExceptionHandler.expected │ │ │ │ ├── SwallowEverythingExceptionHandler.qlref │ │ │ │ └── test.cs │ │ └── ir │ │ │ ├── ir │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ ├── array.cs │ │ │ ├── assignop.cs │ │ │ ├── casts.cs │ │ │ ├── collections.cs │ │ │ ├── constructor_init.cs │ │ │ ├── crement.cs │ │ │ ├── delegates.cs │ │ │ ├── events.cs │ │ │ ├── foreach.cs │ │ │ ├── func_with_param_call.cs │ │ │ ├── indexers.cs │ │ │ ├── inheritance_polymorphism.cs │ │ │ ├── inoutref.cs │ │ │ ├── isexpr.cs │ │ │ ├── jumps.cs │ │ │ ├── lock.cs │ │ │ ├── obj_creation.cs │ │ │ ├── pointers.cs │ │ │ ├── prop.cs │ │ │ ├── raw_ir.expected │ │ │ ├── raw_ir.qlref │ │ │ ├── raw_ir_consistency.expected │ │ │ ├── raw_ir_consistency.qlref │ │ │ ├── simple_call.cs │ │ │ ├── simple_function.cs │ │ │ ├── stmts.cs │ │ │ ├── unaliased_ssa_consistency.expected │ │ │ ├── unaliased_ssa_consistency.qlref │ │ │ ├── unaliased_ssa_ssa_consistency.expected │ │ │ ├── unaliased_ssa_ssa_consistency.qlref │ │ │ ├── using.cs │ │ │ └── variables.cs │ │ │ ├── offbyone │ │ │ ├── OffByOneRA.expected │ │ │ ├── OffByOneRA.ql │ │ │ ├── null.cs │ │ │ └── test.cs │ │ │ └── rangeanalysis │ │ │ ├── RangeAnalysis.expected │ │ │ ├── RangeAnalysis.ql │ │ │ ├── null.cs │ │ │ └── test.cs │ │ ├── format.json │ │ ├── library-tests │ │ ├── aliases │ │ │ ├── Assembly1.dll │ │ │ ├── Assembly2.dll │ │ │ ├── Program.cs │ │ │ ├── aliases1.expected │ │ │ ├── aliases1.ql │ │ │ ├── aliases2.expected │ │ │ └── aliases2.ql │ │ ├── arguments │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ ├── argumentByName.expected │ │ │ ├── argumentByName.ql │ │ │ ├── argumentByParameter.expected │ │ │ ├── argumentByParameter.ql │ │ │ ├── argumentName.expected │ │ │ ├── argumentName.ql │ │ │ ├── argumentType.expected │ │ │ ├── argumentType.ql │ │ │ ├── arguments.cs │ │ │ ├── parameterGetArguments.expected │ │ │ └── parameterGetArguments.ql │ │ ├── asp │ │ │ ├── basic │ │ │ │ ├── AspDirective.expected │ │ │ │ ├── AspDirective.ql │ │ │ │ ├── AspElement.expected │ │ │ │ ├── AspElement.ql │ │ │ │ ├── AspOpenTag.expected │ │ │ │ ├── AspOpenTag.ql │ │ │ │ ├── CodeBehind.expected │ │ │ │ ├── CodeBehind.ql │ │ │ │ ├── Test.cs │ │ │ │ ├── comments.expected │ │ │ │ ├── comments.ql │ │ │ │ ├── script.aspx │ │ │ │ ├── test.aspx │ │ │ │ └── userControl.ascx │ │ │ └── parseError │ │ │ │ ├── AspDirective.expected │ │ │ │ ├── AspDirective.ql │ │ │ │ ├── AspElement.expected │ │ │ │ ├── AspElement.ql │ │ │ │ ├── AspOpenTag.expected │ │ │ │ ├── AspOpenTag.ql │ │ │ │ ├── comments.expected │ │ │ │ ├── comments.ql │ │ │ │ └── test.aspx │ │ ├── assemblies │ │ │ ├── Assemblies.cs │ │ │ ├── Assembly1.cs_ │ │ │ ├── Assembly1.dll │ │ │ ├── Assembly2.cs_ │ │ │ ├── AssemblyInfo.cs │ │ │ ├── CompareVersions.expected │ │ │ ├── CompareVersions.ql │ │ │ ├── Locations.cs │ │ │ ├── Locations.dll │ │ │ ├── ValidVersions.expected │ │ │ ├── ValidVersions.ql │ │ │ ├── assemblies.expected │ │ │ ├── assemblies.ql │ │ │ ├── compilation.expected │ │ │ ├── compilation.ql │ │ │ ├── locations.expected │ │ │ └── locations.ql │ │ ├── assemblylocation │ │ │ ├── AssemblyLocation.expected │ │ │ ├── AssemblyLocation.ql │ │ │ └── program.cs │ │ ├── assignables │ │ │ ├── AssignableAccess.expected │ │ │ ├── AssignableAccess.ql │ │ │ ├── AssignableDefinition.expected │ │ │ ├── AssignableDefinition.ql │ │ │ ├── AssignableDefinitionNode.expected │ │ │ ├── AssignableDefinitionNode.ql │ │ │ ├── Assignables.cs │ │ │ ├── Assignables.expected │ │ │ ├── Assignables.ql │ │ │ ├── Discards.cs │ │ │ ├── Finally.cs │ │ │ ├── GetAnAssignedValue.expected │ │ │ ├── GetAnAssignedValue.ql │ │ │ ├── Patterns.cs │ │ │ ├── TupleDefinition.expected │ │ │ └── TupleDefinition.ql │ │ ├── assignments │ │ │ ├── AssignOperation.expected │ │ │ ├── AssignOperation.ql │ │ │ ├── AssignOperationExpanded.expected │ │ │ ├── AssignOperationExpanded.ql │ │ │ ├── Assignments.cs │ │ │ ├── PrintAst.expected │ │ │ └── PrintAst.qlref │ │ ├── async │ │ │ ├── Async.expected │ │ │ ├── Async.ql │ │ │ ├── Await.expected │ │ │ ├── Await.ql │ │ │ └── async.cs │ │ ├── attributes │ │ │ ├── Assembly1.cs_ │ │ │ ├── Assembly1.dll │ │ │ ├── AttributeArguments.expected │ │ │ ├── AttributeArguments.ql │ │ │ ├── AttributeComments.expected │ │ │ ├── AttributeComments.ql │ │ │ ├── AttributeElements.expected │ │ │ ├── AttributeElements.ql │ │ │ ├── Attributes1.expected │ │ │ ├── Attributes1.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ └── attributes.cs │ │ ├── chaining │ │ │ ├── Chaining.cs │ │ │ ├── Chaining.expected │ │ │ └── Chaining.ql │ │ ├── cil │ │ │ ├── attributes │ │ │ │ ├── Test.cs │ │ │ │ ├── attribute.expected │ │ │ │ └── attribute.ql │ │ │ ├── consistency │ │ │ │ ├── Handles.expected │ │ │ │ ├── Handles.ql │ │ │ │ ├── Program.cs │ │ │ │ ├── consistency.expected │ │ │ │ └── consistency.ql │ │ │ ├── dataflow │ │ │ │ ├── CallableReturns.expected │ │ │ │ ├── CallableReturns.ql │ │ │ │ ├── ControlFlow.expected │ │ │ │ ├── ControlFlow.ql │ │ │ │ ├── DataFlow.cs_ │ │ │ │ ├── DataFlow.dll │ │ │ │ ├── DataFlow.expected │ │ │ │ ├── DataFlow.ql │ │ │ │ ├── DataFlowUnoptimized.cs_ │ │ │ │ ├── DataFlowUnoptimized.dll │ │ │ │ ├── Nullness.expected │ │ │ │ ├── Nullness.ql │ │ │ │ ├── TaintTracking.expected │ │ │ │ ├── TaintTracking.ql │ │ │ │ ├── TrivialProperties.expected │ │ │ │ ├── TrivialProperties.ql │ │ │ │ └── dataflow.cs │ │ │ ├── enums │ │ │ │ ├── Program.cs │ │ │ │ ├── enums.expected │ │ │ │ └── enums.ql │ │ │ ├── functionPointers │ │ │ │ ├── Class1.cs_ │ │ │ │ ├── Test.cs │ │ │ │ ├── fnptr.dll │ │ │ │ ├── functionPointers.expected │ │ │ │ └── functionPointers.ql │ │ │ ├── init-only-prop │ │ │ │ ├── Program.cs │ │ │ │ ├── Test.cs_ │ │ │ │ ├── cil-init-prop.dll │ │ │ │ ├── customModifiers.expected │ │ │ │ ├── customModifiers.ql │ │ │ │ ├── setters.expected │ │ │ │ └── setters.ql │ │ │ ├── pdbs │ │ │ │ ├── EmbeddedPdb.dll │ │ │ │ ├── FullPdb.dll │ │ │ │ ├── FullPdb.pdb │ │ │ │ ├── InstructionLocations.expected │ │ │ │ ├── InstructionLocations.ql │ │ │ │ ├── MethodLocations.expected │ │ │ │ ├── MethodLocations.ql │ │ │ │ ├── PdbOnly.dll │ │ │ │ ├── PdbOnly.pdb │ │ │ │ ├── Pdbs.cs │ │ │ │ ├── PortablePdb.dll │ │ │ │ ├── PortablePdb.pdb │ │ │ │ ├── Stubs.expected │ │ │ │ └── Stubs.ql │ │ │ ├── regressions │ │ │ │ ├── ConstructedMethods.expected │ │ │ │ ├── ConstructedMethods.ql │ │ │ │ ├── Methods.cs │ │ │ │ └── Methods.dll │ │ │ └── typeAnnotations │ │ │ │ ├── Program.cs │ │ │ │ ├── typeAnnotations.expected │ │ │ │ └── typeAnnotations.ql │ │ ├── comments │ │ │ ├── BindingAfter.expected │ │ │ ├── BindingAfter.ql │ │ │ ├── BindingBefore.expected │ │ │ ├── BindingBefore.ql │ │ │ ├── BindingParent.expected │ │ │ ├── BindingParent.ql │ │ │ ├── Bindings.expected │ │ │ ├── Bindings.ql │ │ │ ├── Comments.expected │ │ │ ├── Comments.ql │ │ │ ├── DefineDirectives.expected │ │ │ ├── DefineDirectives.ql │ │ │ ├── Directives.expected │ │ │ ├── Directives.ql │ │ │ ├── ErrorDirectives.expected │ │ │ ├── ErrorDirectives.ql │ │ │ ├── Generics.expected │ │ │ ├── Generics.ql │ │ │ ├── IfDirectives.expected │ │ │ ├── IfDirectives.ql │ │ │ ├── LineDirectives.expected │ │ │ ├── LineDirectives.ql │ │ │ ├── NullableDirectives.expected │ │ │ ├── NullableDirectives.ql │ │ │ ├── Orphans.expected │ │ │ ├── Orphans.ql │ │ │ ├── PragmaChecksums.expected │ │ │ ├── PragmaChecksums.ql │ │ │ ├── PragmaWarnings.expected │ │ │ ├── PragmaWarnings.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ ├── RegionDirectives.expected │ │ │ ├── RegionDirectives.ql │ │ │ ├── UndefineDirectives.expected │ │ │ ├── UndefineDirectives.ql │ │ │ ├── WarningDirectives.expected │ │ │ ├── WarningDirectives.ql │ │ │ ├── comments1.cs │ │ │ ├── comments2.cs │ │ │ └── trivia.cs │ │ ├── commons │ │ │ ├── Assertions │ │ │ │ ├── Assertion.expected │ │ │ │ ├── Assertions.cs │ │ │ │ ├── Assertions.expected │ │ │ │ ├── Assertions.ql │ │ │ │ ├── FailingAssertion.expected │ │ │ │ └── FailingAssertion.ql │ │ │ ├── ComparisonTest │ │ │ │ ├── ComparisonTest.cs │ │ │ │ ├── comparisonTest.expected │ │ │ │ └── comparisonTest.ql │ │ │ ├── Disposal │ │ │ │ ├── Class1.cs_ │ │ │ │ ├── Disposal.cs │ │ │ │ ├── DisposalTests.dll │ │ │ │ ├── DisposedFields.expected │ │ │ │ ├── DisposedFields.ql │ │ │ │ ├── DisposedParameter.expected │ │ │ │ ├── DisposedParameter.ql │ │ │ │ ├── DisposedVariables.expected │ │ │ │ ├── DisposedVariables.ql │ │ │ │ ├── UndisposedParameter.expected │ │ │ │ └── UndisposedParameter.ql │ │ │ ├── GeneratedCode │ │ │ │ ├── GeneratedCode.cs │ │ │ │ ├── GeneratedCode.expected │ │ │ │ ├── GeneratedCode.ql │ │ │ │ └── NonGeneratedCode.cs │ │ │ ├── Strings │ │ │ │ ├── ImplicitToStringExpr.expected │ │ │ │ ├── ImplicitToStringExpr.ql │ │ │ │ └── Strings.cs │ │ │ └── TargetFramework │ │ │ │ ├── HasElement.expected │ │ │ │ ├── HasElement.ql │ │ │ │ ├── NetCore.expected │ │ │ │ ├── NetCore.ql │ │ │ │ ├── NetCore2.0.cs │ │ │ │ ├── NetFramework.expected │ │ │ │ ├── NetFramework.ql │ │ │ │ ├── NetFramework4.6.1.cs │ │ │ │ ├── NetFramework4.6.cs │ │ │ │ ├── NetStandard.expected │ │ │ │ ├── NetStandard.ql │ │ │ │ ├── NetStandard1.3.cs │ │ │ │ ├── TargetFrameworks.expected │ │ │ │ └── TargetFrameworks.ql │ │ ├── compilations │ │ │ ├── Compilations.expected │ │ │ ├── Compilations.ql │ │ │ ├── CompilerError.expected │ │ │ ├── CompilerError.qlref │ │ │ ├── CompilerMessage.expected │ │ │ ├── CompilerMessage.qlref │ │ │ ├── ExtractorError.expected │ │ │ ├── ExtractorError.qlref │ │ │ ├── ExtractorErrors.expected │ │ │ ├── ExtractorErrors.ql │ │ │ ├── ExtractorMessage.expected │ │ │ ├── ExtractorMessage.qlref │ │ │ └── Program.cs │ │ ├── complexity │ │ │ ├── Complexity.expected │ │ │ ├── Complexity.ql │ │ │ └── complexity.cs │ │ ├── constructors │ │ │ ├── Constructors1.expected │ │ │ ├── Constructors1.ql │ │ │ ├── Constructors2.expected │ │ │ ├── Constructors2.ql │ │ │ ├── Constructors3.expected │ │ │ ├── Constructors3.ql │ │ │ ├── Constructors4.expected │ │ │ ├── Constructors4.ql │ │ │ ├── Destructors1.expected │ │ │ ├── Destructors1.ql │ │ │ ├── Destructors2.expected │ │ │ ├── Destructors2.ql │ │ │ ├── Destructors3.expected │ │ │ ├── Destructors3.ql │ │ │ ├── Destructors4.expected │ │ │ ├── Destructors4.ql │ │ │ ├── Destructors5.expected │ │ │ ├── Destructors5.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ └── constructors.cs │ │ ├── controlflow │ │ │ ├── graph │ │ │ │ ├── AccessorCalls.cs │ │ │ │ ├── ArrayCreation.cs │ │ │ │ ├── Assert.cs │ │ │ │ ├── Assignments.cs │ │ │ │ ├── BasicBlock.expected │ │ │ │ ├── BasicBlock.ql │ │ │ │ ├── BreakInTry.cs │ │ │ │ ├── Common.qll │ │ │ │ ├── CompileTimeOperators.cs │ │ │ │ ├── Condition.expected │ │ │ │ ├── Condition.ql │ │ │ │ ├── ConditionalAccess.cs │ │ │ │ ├── Conditions.cs │ │ │ │ ├── Consistency.expected │ │ │ │ ├── Consistency.ql │ │ │ │ ├── Dominance.expected │ │ │ │ ├── Dominance.ql │ │ │ │ ├── EnclosingCallable.expected │ │ │ │ ├── EnclosingCallable.ql │ │ │ │ ├── EntryElement.expected │ │ │ │ ├── EntryElement.ql │ │ │ │ ├── ExitElement.expected │ │ │ │ ├── ExitElement.ql │ │ │ │ ├── ExitMethods.cs │ │ │ │ ├── Extensions.cs │ │ │ │ ├── Finally.cs │ │ │ │ ├── Foreach.cs │ │ │ │ ├── Initializers.cs │ │ │ │ ├── LoopUnrolling.cs │ │ │ │ ├── MultiImplementationA.cs │ │ │ │ ├── MultiImplementationB.cs │ │ │ │ ├── NodeGraph.expected │ │ │ │ ├── NodeGraph.ql │ │ │ │ ├── Nodes.expected │ │ │ │ ├── Nodes.ql │ │ │ │ ├── NullCoalescing.cs │ │ │ │ ├── Patterns.cs │ │ │ │ ├── PostDominance.cs │ │ │ │ ├── Qualifiers.cs │ │ │ │ ├── Switch.cs │ │ │ │ ├── TypeAccesses.cs │ │ │ │ ├── VarDecls.cs │ │ │ │ └── cflow.cs │ │ │ ├── guards │ │ │ │ ├── AbstractValue.expected │ │ │ │ ├── AbstractValue.ql │ │ │ │ ├── Assert.cs │ │ │ │ ├── BooleanGuardedExpr.expected │ │ │ │ ├── BooleanGuardedExpr.ql │ │ │ │ ├── Collections.cs │ │ │ │ ├── Collections.expected │ │ │ │ ├── Collections.ql │ │ │ │ ├── ExtractorOptions.cs │ │ │ │ ├── GuardedControlFlowNode.expected │ │ │ │ ├── GuardedControlFlowNode.ql │ │ │ │ ├── GuardedExpr.expected │ │ │ │ ├── GuardedExpr.ql │ │ │ │ ├── Guards.cs │ │ │ │ ├── Implications.expected │ │ │ │ ├── Implications.ql │ │ │ │ ├── MatchingGuardedExpr.expected │ │ │ │ ├── MatchingGuardedExpr.ql │ │ │ │ ├── NullGuardedExpr.expected │ │ │ │ ├── NullGuardedExpr.ql │ │ │ │ └── Splitting.cs │ │ │ └── splits │ │ │ │ ├── SplittingStressTest.cs │ │ │ │ ├── SplittingStressTest.expected │ │ │ │ └── SplittingStressTest.ql │ │ ├── conversion │ │ │ ├── boxing │ │ │ │ ├── Boxing.cs │ │ │ │ ├── Boxing.expected │ │ │ │ └── Boxing.ql │ │ │ ├── identity │ │ │ │ ├── Identity.cs │ │ │ │ ├── Identity.expected │ │ │ │ └── Identity.ql │ │ │ ├── nullable │ │ │ │ ├── Nullable.cs │ │ │ │ ├── Nullable.expected │ │ │ │ └── Nullable.ql │ │ │ ├── numeric │ │ │ │ ├── Numeric.cs │ │ │ │ ├── Numeric.expected │ │ │ │ └── Numeric.ql │ │ │ ├── operator │ │ │ │ ├── Operator.cs │ │ │ │ ├── Operator.expected │ │ │ │ ├── Operator.ql │ │ │ │ ├── PrintAst.expected │ │ │ │ └── PrintAst.qlref │ │ │ ├── pointer │ │ │ │ ├── Pointer.cs │ │ │ │ ├── Pointer.expected │ │ │ │ └── Pointer.ql │ │ │ └── reftype │ │ │ │ ├── RefType.cs │ │ │ │ ├── RefType.expected │ │ │ │ └── RefType.ql │ │ ├── csharp6 │ │ │ ├── Exceptions.expected │ │ │ ├── Exceptions.ql │ │ │ ├── ExprBody1.expected │ │ │ ├── ExprBody1.ql │ │ │ ├── ExprBody2.expected │ │ │ ├── ExprBody2.ql │ │ │ ├── ExprBody3.expected │ │ │ ├── ExprBody3.ql │ │ │ ├── ExprBody4.expected │ │ │ ├── ExprBody4.ql │ │ │ ├── InterpolatedStringExpr.expected │ │ │ ├── InterpolatedStringExpr.ql │ │ │ ├── MemberAccess1.expected │ │ │ ├── MemberAccess1.ql │ │ │ ├── MemberAccess2.expected │ │ │ ├── MemberAccess2.ql │ │ │ ├── MemberInitializer.expected │ │ │ ├── MemberInitializer.ql │ │ │ ├── Nameof.expected │ │ │ ├── Nameof.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ ├── PropertyInitializer.expected │ │ │ ├── PropertyInitializer.ql │ │ │ ├── UsingStatic.expected │ │ │ ├── UsingStatic.ql │ │ │ └── csharp6.cs │ │ ├── csharp7.1 │ │ │ ├── DefaultLiterals.expected │ │ │ ├── DefaultLiterals.ql │ │ │ ├── IsConstants.expected │ │ │ ├── IsConstants.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ └── csharp71.cs │ │ ├── csharp7.2 │ │ │ ├── InArguments.expected │ │ │ ├── InArguments.ql │ │ │ ├── InParameters.expected │ │ │ ├── InParameters.ql │ │ │ ├── NumericLiterals.expected │ │ │ ├── NumericLiterals.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ ├── PrivateProtected.expected │ │ │ ├── PrivateProtected.ql │ │ │ ├── ReadonlyStructs.expected │ │ │ ├── ReadonlyStructs.ql │ │ │ ├── RefReadonlyDelegate.expected │ │ │ ├── RefReadonlyDelegate.ql │ │ │ ├── RefReadonlyReturns.expected │ │ │ ├── RefReadonlyReturns.ql │ │ │ ├── RefStructs.expected │ │ │ ├── RefStructs.ql │ │ │ └── csharp72.cs │ │ ├── csharp7.3 │ │ │ ├── ArrayCreations.expected │ │ │ ├── ArrayCreations.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ └── csharp73.cs │ │ ├── csharp7 │ │ │ ├── Access.expected │ │ │ ├── Access.ql │ │ │ ├── CSharp7.cs │ │ │ ├── CaseCondition.expected │ │ │ ├── CaseCondition.ql │ │ │ ├── ConstructedLocalFunctions.expected │ │ │ ├── ConstructedLocalFunctions.ql │ │ │ ├── DefUse.expected │ │ │ ├── DefUse.ql │ │ │ ├── Discards.expected │ │ │ ├── Discards.ql │ │ │ ├── ExpressionBodies.expected │ │ │ ├── ExpressionBodies.ql │ │ │ ├── ForEach.expected │ │ │ ├── ForEach.ql │ │ │ ├── GlobalFlow.expected │ │ │ ├── GlobalFlow.ql │ │ │ ├── GlobalTaintTracking.expected │ │ │ ├── GlobalTaintTracking.ql │ │ │ ├── IsFlow.expected │ │ │ ├── IsFlow.ql │ │ │ ├── IsPatterns.expected │ │ │ ├── IsPatterns.ql │ │ │ ├── Literals.expected │ │ │ ├── Literals.ql │ │ │ ├── LocalFunctionCallArguments.expected │ │ │ ├── LocalFunctionCallArguments.ql │ │ │ ├── LocalFunctionCalls.expected │ │ │ ├── LocalFunctionCalls.ql │ │ │ ├── LocalFunctionParameters.expected │ │ │ ├── LocalFunctionParameters.ql │ │ │ ├── LocalFunctionStmts.expected │ │ │ ├── LocalFunctionStmts.ql │ │ │ ├── LocalFunctions.expected │ │ │ ├── LocalFunctions.ql │ │ │ ├── LocalTaintFlow.expected │ │ │ ├── LocalTaintFlow.ql │ │ │ ├── LocalVariables.expected │ │ │ ├── LocalVariables.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ ├── RefDelegates.expected │ │ │ ├── RefDelegates.ql │ │ │ ├── RefExprs.expected │ │ │ ├── RefExprs.ql │ │ │ ├── RefFunctions.expected │ │ │ ├── RefFunctions.ql │ │ │ ├── RefVariables.expected │ │ │ ├── RefVariables.ql │ │ │ ├── TaintReaches.expected │ │ │ ├── TaintReaches.ql │ │ │ ├── Throw.expected │ │ │ ├── Throw.ql │ │ │ ├── TupleAccess.expected │ │ │ ├── TupleAccess.ql │ │ │ ├── TupleExpr.expected │ │ │ ├── TupleExpr.ql │ │ │ ├── TupleTypes.expected │ │ │ ├── TupleTypes.ql │ │ │ ├── TypeCase1.expected │ │ │ ├── TypeCase1.ql │ │ │ ├── TypeCase2.expected │ │ │ ├── TypeCase2.ql │ │ │ ├── TypeCase3.expected │ │ │ ├── TypeCase3.ql │ │ │ ├── UnboundLocalFunctions.expected │ │ │ └── UnboundLocalFunctions.ql │ │ ├── csharp8 │ │ │ ├── AlternateInterpolatedStrings.cs │ │ │ ├── AlternateInterpolatedStrings.expected │ │ │ ├── AlternateInterpolatedStrings.ql │ │ │ ├── AsyncStreams.cs │ │ │ ├── DefaultInterfaceMethods.cs │ │ │ ├── DefaultInterfaceMethods.expected │ │ │ ├── DefaultInterfaceMethods.ql │ │ │ ├── NameResolutionSuppressNullable.cs │ │ │ ├── NullCoalescingAssignment.cs │ │ │ ├── NullCoalescingAssignment.expected │ │ │ ├── NullCoalescingAssignment.ql │ │ │ ├── NullCoalescingControlFlow.expected │ │ │ ├── NullCoalescingControlFlow.ql │ │ │ ├── NullableRefTypes.cs │ │ │ ├── NullableRefTypes.expected │ │ │ ├── NullableRefTypes.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ ├── StaticLocalFunctions.cs │ │ │ ├── StaticLocalFunctions.expected │ │ │ ├── StaticLocalFunctions.ql │ │ │ ├── UnmanagedGenericStructs.cs │ │ │ ├── UnmanagedGenericStructs.expected │ │ │ ├── UnmanagedGenericStructs.ql │ │ │ ├── UsingControlFlow.expected │ │ │ ├── UsingControlFlow.ql │ │ │ ├── UsingDeclarations.cs │ │ │ ├── UsingDeclarations.expected │ │ │ ├── UsingDeclarations.ql │ │ │ ├── ispatternflow.expected │ │ │ ├── ispatternflow.ql │ │ │ ├── patterns.cs │ │ │ ├── patterns.expected │ │ │ ├── patterns.ql │ │ │ ├── ranges.cs │ │ │ ├── ranges.expected │ │ │ ├── ranges.ql │ │ │ ├── switchCaseExprTypes.expected │ │ │ ├── switchCaseExprTypes.ql │ │ │ ├── switchexprcontrolflow.expected │ │ │ ├── switchexprcontrolflow.ql │ │ │ ├── switchstmtctrlflow.expected │ │ │ └── switchstmtctrlflow.ql │ │ ├── csharp9 │ │ │ ├── AnonymousObjectCreation.cs │ │ │ ├── AnonymousObjectCreation.expected │ │ │ ├── AnonymousObjectCreation.ql │ │ │ ├── BinaryPattern.cs │ │ │ ├── CovariantReturn.cs │ │ │ ├── Discard.cs │ │ │ ├── Discard.expected │ │ │ ├── Discard.ql │ │ │ ├── ForeachExtension.cs │ │ │ ├── FunctionPointer.cs │ │ │ ├── FunctionPointer.expected │ │ │ ├── FunctionPointer.ql │ │ │ ├── GlobalStmt.cs │ │ │ ├── InitOnlyProperty.cs │ │ │ ├── IsExternalInit.cs │ │ │ ├── LambdaModifier.cs │ │ │ ├── LambdaModifier.expected │ │ │ ├── LambdaModifier.ql │ │ │ ├── LocalFunction.cs │ │ │ ├── LocalFunctionWithoutBody.expected │ │ │ ├── LocalFunctions.expected │ │ │ ├── LocalFunctions.ql │ │ │ ├── NativeInt.cs │ │ │ ├── ParenthesizedPattern.cs │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ ├── Record.cs │ │ │ ├── RelationalPattern.cs │ │ │ ├── TargetType.cs │ │ │ ├── TargetType.expected │ │ │ ├── TargetType.ql │ │ │ ├── TypeParameterNullability.cs │ │ │ ├── TypePattern.cs │ │ │ ├── UnaryPattern.cs │ │ │ ├── binaryPattern.expected │ │ │ ├── binaryPattern.ql │ │ │ ├── covariantReturn.expected │ │ │ ├── covariantReturn.ql │ │ │ ├── foreach.expected │ │ │ ├── foreach.ql │ │ │ ├── globalStmt.expected │ │ │ ├── globalStmt.ql │ │ │ ├── initOnlyProperty.expected │ │ │ ├── initOnlyProperty.ql │ │ │ ├── nativeInt.expected │ │ │ ├── nativeInt.ql │ │ │ ├── record.expected │ │ │ ├── record.ql │ │ │ ├── relationalPattern.expected │ │ │ ├── relationalPattern.ql │ │ │ ├── typeParameterNullability.expected │ │ │ ├── typeParameterNullability.ql │ │ │ ├── typePattern.expected │ │ │ ├── typePattern.ql │ │ │ ├── unaryPattern.expected │ │ │ ├── unaryPattern.ql │ │ │ ├── withExpr.expected │ │ │ └── withExpr.ql │ │ ├── dataflow │ │ │ ├── async │ │ │ │ ├── Async.cs │ │ │ │ ├── Async.expected │ │ │ │ └── Async.ql │ │ │ ├── call-sensitivity │ │ │ │ ├── CallSensitivityFlow.cs │ │ │ │ ├── CallSensitivityFlow.expected │ │ │ │ └── CallSensitivityFlow.ql │ │ │ ├── callablereturnsarg │ │ │ │ ├── CallableReturnsArg.cs │ │ │ │ ├── Common.qll │ │ │ │ ├── DataFlow.expected │ │ │ │ ├── DataFlow.ql │ │ │ │ ├── TaintTracking.expected │ │ │ │ └── TaintTracking.ql │ │ │ ├── collections │ │ │ │ ├── CollectionFlow.cs │ │ │ │ ├── CollectionFlow.expected │ │ │ │ └── CollectionFlow.ql │ │ │ ├── defuse │ │ │ │ ├── Test.cs │ │ │ │ ├── defUseEquivalence.expected │ │ │ │ ├── defUseEquivalence.ql │ │ │ │ ├── parameterUseEquivalence.expected │ │ │ │ ├── parameterUseEquivalence.ql │ │ │ │ ├── useUseEquivalence.expected │ │ │ │ └── useUseEquivalence.ql │ │ │ ├── delegates │ │ │ │ ├── DelegateFlow.cs │ │ │ │ ├── DelegateFlow.expected │ │ │ │ └── DelegateFlow.ql │ │ │ ├── fields │ │ │ │ ├── A.cs │ │ │ │ ├── B.cs │ │ │ │ ├── C.cs │ │ │ │ ├── D.cs │ │ │ │ ├── E.cs │ │ │ │ ├── F.cs │ │ │ │ ├── FieldFlow.expected │ │ │ │ ├── FieldFlow.ql │ │ │ │ ├── G.cs │ │ │ │ ├── H.cs │ │ │ │ ├── I.cs │ │ │ │ └── J.cs │ │ │ ├── flowsources │ │ │ │ ├── publicparameter │ │ │ │ │ ├── PublicCallableParameterFlowSource.cs │ │ │ │ │ ├── publicCallableParameterFlowSource.expected │ │ │ │ │ └── publicCallableParameterFlowSource.ql │ │ │ │ └── remote │ │ │ │ │ ├── Controller.cs │ │ │ │ │ ├── RemoteFlowSource.cs │ │ │ │ │ ├── remoteFlowSource.expected │ │ │ │ │ └── remoteFlowSource.ql │ │ │ ├── functionpointers │ │ │ │ ├── FunctionPointerFlow.cs │ │ │ │ ├── FunctionPointerFlow.expected │ │ │ │ └── FunctionPointerFlow.ql │ │ │ ├── global │ │ │ │ ├── Capture.cs │ │ │ │ ├── Common.qll │ │ │ │ ├── DataFlow.expected │ │ │ │ ├── DataFlow.ql │ │ │ │ ├── DataFlowPath.expected │ │ │ │ ├── DataFlowPath.ql │ │ │ │ ├── GetAnOutNode.expected │ │ │ │ ├── GetAnOutNode.ql │ │ │ │ ├── GlobalDataFlow.cs │ │ │ │ ├── Splitting.cs │ │ │ │ ├── TaintTracking.expected │ │ │ │ ├── TaintTracking.ql │ │ │ │ ├── TaintTrackingPath.expected │ │ │ │ ├── TaintTrackingPath.ql │ │ │ │ └── This.cs │ │ │ ├── library │ │ │ │ ├── FlowSummaries.expected │ │ │ │ ├── FlowSummaries.ql │ │ │ │ ├── LibraryTypeDataFlow.cs │ │ │ │ ├── TaintedMember.expected │ │ │ │ └── TaintedMember.ql │ │ │ ├── local │ │ │ │ ├── Capture.cs │ │ │ │ ├── Common.qll │ │ │ │ ├── DataFlow.expected │ │ │ │ ├── DataFlow.ql │ │ │ │ ├── DataFlowStep.expected │ │ │ │ ├── DataFlowStep.ql │ │ │ │ ├── LocalDataFlow.cs │ │ │ │ ├── SSA.cs │ │ │ │ ├── Splitting.cs │ │ │ │ ├── TaintTracking.expected │ │ │ │ ├── TaintTracking.ql │ │ │ │ ├── TaintTrackingStep.expected │ │ │ │ └── TaintTrackingStep.ql │ │ │ ├── modulusanalysis │ │ │ │ ├── ModulusAnalysis.cs │ │ │ │ ├── ModulusAnalysis.expected │ │ │ │ └── ModulusAnalysis.ql │ │ │ ├── signanalysis │ │ │ │ ├── MissingSign.expected │ │ │ │ ├── MissingSign.ql │ │ │ │ ├── SignAnalysis.cs │ │ │ │ ├── SignAnalysis.expected │ │ │ │ └── SignAnalysis.ql │ │ │ ├── ssa-large │ │ │ │ ├── Large.cs │ │ │ │ ├── countssa.expected │ │ │ │ └── countssa.ql │ │ │ ├── ssa │ │ │ │ ├── BaseSsaConsistency.expected │ │ │ │ ├── BaseSsaConsistency.ql │ │ │ │ ├── Capture.cs │ │ │ │ ├── Consistency.cs │ │ │ │ ├── DefAdjacentRead.expected │ │ │ │ ├── DefAdjacentRead.ql │ │ │ │ ├── DefUse.cs │ │ │ │ ├── Example.cs │ │ │ │ ├── Fields.cs │ │ │ │ ├── IsLiveOutRefParameterDefinition.expected │ │ │ │ ├── IsLiveOutRefParameterDefinition.ql │ │ │ │ ├── OutRef.cs │ │ │ │ ├── Patterns.cs │ │ │ │ ├── PreSsaConsistency.expected │ │ │ │ ├── PreSsaConsistency.ql │ │ │ │ ├── Properties.cs │ │ │ │ ├── ReadAdjacentRead.expected │ │ │ │ ├── ReadAdjacentRead.ql │ │ │ │ ├── SSAPhi.expected │ │ │ │ ├── SSAPhi.ql │ │ │ │ ├── Splitting.cs │ │ │ │ ├── SsaCapturedVariableDef.expected │ │ │ │ ├── SsaCapturedVariableDef.ql │ │ │ │ ├── SsaConsistency.expected │ │ │ │ ├── SsaConsistency.ql │ │ │ │ ├── SsaDef.expected │ │ │ │ ├── SsaDef.ql │ │ │ │ ├── SsaDefElement.expected │ │ │ │ ├── SsaDefElement.ql │ │ │ │ ├── SsaDefLastRead.expected │ │ │ │ ├── SsaDefLastRead.ql │ │ │ │ ├── SsaExplicitDef.expected │ │ │ │ ├── SsaExplicitDef.ql │ │ │ │ ├── SsaImplicitCall.expected │ │ │ │ ├── SsaImplicitCall.ql │ │ │ │ ├── SsaImplicitQualifier.expected │ │ │ │ ├── SsaImplicitQualifier.ql │ │ │ │ ├── SsaRead.expected │ │ │ │ ├── SsaRead.ql │ │ │ │ ├── SsaUltimateDef.expected │ │ │ │ ├── SsaUltimateDef.ql │ │ │ │ ├── Test.cs │ │ │ │ └── Tuples.cs │ │ │ ├── tuples │ │ │ │ ├── DataFlowStep.expected │ │ │ │ ├── DataFlowStep.ql │ │ │ │ ├── PrintAst.expected │ │ │ │ ├── PrintAst.qlref │ │ │ │ ├── Tuples.cs │ │ │ │ ├── Tuples.expected │ │ │ │ └── Tuples.ql │ │ │ └── types │ │ │ │ ├── Types.cs │ │ │ │ ├── Types.expected │ │ │ │ └── Types.ql │ │ ├── definitions │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ ├── definitions.cs │ │ │ ├── definitions.expected │ │ │ └── definitions.qlref │ │ ├── delegates │ │ │ ├── Delegates1.expected │ │ │ ├── Delegates1.ql │ │ │ ├── Delegates2.expected │ │ │ ├── Delegates2.ql │ │ │ ├── Delegates3.expected │ │ │ ├── Delegates3.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ └── delegates.cs │ │ ├── dispatch │ │ │ ├── CallContext.expected │ │ │ ├── CallContext.ql │ │ │ ├── CallGraph.expected │ │ │ ├── CallGraph.ql │ │ │ ├── Dynamic.cs │ │ │ ├── ExactCallable.cs │ │ │ ├── GetADynamicTarget.expected │ │ │ ├── GetADynamicTarget.ql │ │ │ ├── TypeFlow.cs │ │ │ ├── ViableCallable.cs │ │ │ ├── exactCallable.expected │ │ │ ├── exactCallable.ql │ │ │ ├── viableCallable.expected │ │ │ └── viableCallable.ql │ │ ├── dynamic │ │ │ ├── DynamicElementAccess.expected │ │ │ ├── DynamicElementAccess.ql │ │ │ ├── DynamicMemberAccess.expected │ │ │ ├── DynamicMemberAccess.ql │ │ │ ├── DynamicMethodCall.expected │ │ │ ├── DynamicMethodCall.ql │ │ │ ├── DynamicMutatorOperatorCall.expected │ │ │ ├── DynamicMutatorOperatorCall.ql │ │ │ ├── DynamicObjectCreation.expected │ │ │ ├── DynamicObjectCreation.ql │ │ │ ├── DynamicOperatorCall.expected │ │ │ ├── DynamicOperatorCall.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ └── dynamic.cs │ │ ├── encoding │ │ │ ├── SBCS.cs │ │ │ ├── sbcs.expected │ │ │ └── sbcs.ql │ │ ├── enums │ │ │ ├── Enums1.expected │ │ │ ├── Enums1.ql │ │ │ ├── Enums10.expected │ │ │ ├── Enums10.ql │ │ │ ├── Enums11.expected │ │ │ ├── Enums11.ql │ │ │ ├── Enums2.expected │ │ │ ├── Enums2.ql │ │ │ ├── Enums3.expected │ │ │ ├── Enums3.ql │ │ │ ├── Enums4.expected │ │ │ ├── Enums4.ql │ │ │ ├── Enums5.expected │ │ │ ├── Enums5.ql │ │ │ ├── Enums6.expected │ │ │ ├── Enums6.ql │ │ │ ├── Enums7.expected │ │ │ ├── Enums7.ql │ │ │ ├── Enums8.expected │ │ │ ├── Enums8.ql │ │ │ ├── Enums9.expected │ │ │ ├── Enums9.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ └── enums.cs │ │ ├── events │ │ │ ├── Events1.expected │ │ │ ├── Events1.ql │ │ │ ├── Events10.expected │ │ │ ├── Events10.ql │ │ │ ├── Events11.expected │ │ │ ├── Events11.ql │ │ │ ├── Events12.expected │ │ │ ├── Events12.ql │ │ │ ├── Events2.expected │ │ │ ├── Events2.ql │ │ │ ├── Events3.expected │ │ │ ├── Events3.ql │ │ │ ├── Events4.expected │ │ │ ├── Events4.ql │ │ │ ├── Events5.expected │ │ │ ├── Events5.ql │ │ │ ├── Events6.expected │ │ │ ├── Events6.ql │ │ │ ├── Events7.expected │ │ │ ├── Events7.ql │ │ │ ├── Events8.expected │ │ │ ├── Events8.ql │ │ │ ├── Events9.expected │ │ │ ├── Events9.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ └── events.cs │ │ ├── exceptions │ │ │ ├── Exceptions1.expected │ │ │ ├── Exceptions1.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ └── exceptions.cs │ │ ├── expressions │ │ │ ├── AddEventExpr1.expected │ │ │ ├── AddEventExpr1.ql │ │ │ ├── AnonymousMethod1.expected │ │ │ ├── AnonymousMethod1.ql │ │ │ ├── AnonymousMethod2.expected │ │ │ ├── AnonymousMethod2.ql │ │ │ ├── AnonymousMethod3.expected │ │ │ ├── AnonymousMethod3.ql │ │ │ ├── AnonymousMethod4.expected │ │ │ ├── AnonymousMethod4.ql │ │ │ ├── AnonymousMethod5.expected │ │ │ ├── AnonymousMethod5.ql │ │ │ ├── AnonymousObjectCreation1.expected │ │ │ ├── AnonymousObjectCreation1.ql │ │ │ ├── AnonymousObjectCreation2.expected │ │ │ ├── AnonymousObjectCreation2.ql │ │ │ ├── AnonymousObjectCreation3.expected │ │ │ ├── AnonymousObjectCreation3.ql │ │ │ ├── AnonymousObjectCreation4.expected │ │ │ ├── AnonymousObjectCreation4.ql │ │ │ ├── ArrayAccess1.expected │ │ │ ├── ArrayAccess1.ql │ │ │ ├── ArrayCreation1.expected │ │ │ ├── ArrayCreation1.ql │ │ │ ├── ArrayCreation10.expected │ │ │ ├── ArrayCreation10.ql │ │ │ ├── ArrayCreation11.expected │ │ │ ├── ArrayCreation11.ql │ │ │ ├── ArrayCreation2.expected │ │ │ ├── ArrayCreation2.ql │ │ │ ├── ArrayCreation3.expected │ │ │ ├── ArrayCreation3.ql │ │ │ ├── ArrayCreation4.expected │ │ │ ├── ArrayCreation4.ql │ │ │ ├── ArrayCreation5.expected │ │ │ ├── ArrayCreation5.ql │ │ │ ├── ArrayCreation6.expected │ │ │ ├── ArrayCreation6.ql │ │ │ ├── ArrayCreation7.expected │ │ │ ├── ArrayCreation7.ql │ │ │ ├── ArrayCreation8.expected │ │ │ ├── ArrayCreation8.ql │ │ │ ├── ArrayCreation9.expected │ │ │ ├── ArrayCreation9.ql │ │ │ ├── As1.expected │ │ │ ├── As1.ql │ │ │ ├── BaseAccess1.expected │ │ │ ├── BaseAccess1.ql │ │ │ ├── Call1.expected │ │ │ ├── Call1.ql │ │ │ ├── Call2.expected │ │ │ ├── Call2.ql │ │ │ ├── Call3.expected │ │ │ ├── Call3.ql │ │ │ ├── Call4.expected │ │ │ ├── Call4.ql │ │ │ ├── Call5.expected │ │ │ ├── Call5.ql │ │ │ ├── Call6.expected │ │ │ ├── Call6.ql │ │ │ ├── Call7.expected │ │ │ ├── Call7.ql │ │ │ ├── Cast1.expected │ │ │ ├── Cast1.ql │ │ │ ├── Cast2.expected │ │ │ ├── Cast2.ql │ │ │ ├── Cast3.expected │ │ │ ├── Cast3.ql │ │ │ ├── ConstructorInitializer1.expected │ │ │ ├── ConstructorInitializer1.ql │ │ │ ├── ConstructorInitializer2.expected │ │ │ ├── ConstructorInitializer2.ql │ │ │ ├── Default1.expected │ │ │ ├── Default1.ql │ │ │ ├── Default2.expected │ │ │ ├── Default2.ql │ │ │ ├── DelegateCall1.expected │ │ │ ├── DelegateCall1.ql │ │ │ ├── DelegateCall2.expected │ │ │ ├── DelegateCall2.ql │ │ │ ├── DelegateCall3.expected │ │ │ ├── DelegateCall3.ql │ │ │ ├── DelegateCreation1.expected │ │ │ ├── DelegateCreation1.ql │ │ │ ├── DelegateCreation2.expected │ │ │ ├── DelegateCreation2.ql │ │ │ ├── DelegateCreation3.expected │ │ │ ├── DelegateCreation3.ql │ │ │ ├── DelegateCreation4.expected │ │ │ ├── DelegateCreation4.ql │ │ │ ├── DelegateCreation5.expected │ │ │ ├── DelegateCreation5.ql │ │ │ ├── DelegateCreation6.expected │ │ │ ├── DelegateCreation6.ql │ │ │ ├── EventAccess1.expected │ │ │ ├── EventAccess1.ql │ │ │ ├── EventAccess2.expected │ │ │ ├── EventAccess2.ql │ │ │ ├── EventAccess3.expected │ │ │ ├── EventAccess3.ql │ │ │ ├── ExpressionDepth.expected │ │ │ ├── ExpressionDepth.ql │ │ │ ├── ExprsChecked1.expected │ │ │ ├── ExprsChecked1.ql │ │ │ ├── ExprsUnchecked1.expected │ │ │ ├── ExprsUnchecked1.ql │ │ │ ├── FieldAccess1.expected │ │ │ ├── FieldAccess1.ql │ │ │ ├── FieldAccess2.ql.disabled │ │ │ ├── FoldedLiterals.cs │ │ │ ├── IndexerAccess1.expected │ │ │ ├── IndexerAccess1.ql │ │ │ ├── IndexerAccess2.expected │ │ │ ├── IndexerAccess2.ql │ │ │ ├── Is1.expected │ │ │ ├── Is1.ql │ │ │ ├── Lambda1.expected │ │ │ ├── Lambda1.ql │ │ │ ├── Lambda2.expected │ │ │ ├── Lambda2.ql │ │ │ ├── Lambda3.expected │ │ │ ├── Lambda3.ql │ │ │ ├── Lambda4.expected │ │ │ ├── Lambda4.ql │ │ │ ├── Lambda5.expected │ │ │ ├── Lambda5.ql │ │ │ ├── Lambda6.expected │ │ │ ├── Lambda6.ql │ │ │ ├── Literals1.expected │ │ │ ├── Literals1.ql │ │ │ ├── Literals10.expected │ │ │ ├── Literals10.ql │ │ │ ├── Literals11.expected │ │ │ ├── Literals11.ql │ │ │ ├── Literals12.expected │ │ │ ├── Literals12.ql │ │ │ ├── Literals13.expected │ │ │ ├── Literals13.ql │ │ │ ├── Literals2.expected │ │ │ ├── Literals2.ql │ │ │ ├── Literals3.expected │ │ │ ├── Literals3.ql │ │ │ ├── Literals4.expected │ │ │ ├── Literals4.ql │ │ │ ├── Literals5.expected │ │ │ ├── Literals5.ql │ │ │ ├── Literals6.expected │ │ │ ├── Literals6.ql │ │ │ ├── Literals7.expected │ │ │ ├── Literals7.ql │ │ │ ├── Literals8.expected │ │ │ ├── Literals8.ql │ │ │ ├── Literals9.expected │ │ │ ├── Literals9.ql │ │ │ ├── LocalConstAccess1.expected │ │ │ ├── LocalConstAccess1.ql │ │ │ ├── LocalFunctionAccess.expected │ │ │ ├── LocalFunctionAccess.ql │ │ │ ├── LocalVarAccess1.expected │ │ │ ├── LocalVarAccess1.ql │ │ │ ├── LocalVarAccess2.expected │ │ │ ├── LocalVarAccess2.ql │ │ │ ├── LogicalOperators1.expected │ │ │ ├── LogicalOperators1.ql │ │ │ ├── MethodAccess.cs │ │ │ ├── MethodAccess.expected │ │ │ ├── MethodAccess.ql │ │ │ ├── ObjectCreation1.expected │ │ │ ├── ObjectCreation1.ql │ │ │ ├── ObjectCreation10.expected │ │ │ ├── ObjectCreation10.ql │ │ │ ├── ObjectCreation11.expected │ │ │ ├── ObjectCreation11.ql │ │ │ ├── ObjectCreation2.expected │ │ │ ├── ObjectCreation2.ql │ │ │ ├── ObjectCreation3.expected │ │ │ ├── ObjectCreation3.ql │ │ │ ├── ObjectCreation4.expected │ │ │ ├── ObjectCreation4.ql │ │ │ ├── ObjectCreation5.expected │ │ │ ├── ObjectCreation5.ql │ │ │ ├── ObjectCreation6.expected │ │ │ ├── ObjectCreation6.ql │ │ │ ├── ObjectCreation7.expected │ │ │ ├── ObjectCreation7.ql │ │ │ ├── ObjectCreation8.expected │ │ │ ├── ObjectCreation8.ql │ │ │ ├── ObjectCreation9.expected │ │ │ ├── ObjectCreation9.ql │ │ │ ├── OperatorCall1.expected │ │ │ ├── OperatorCall1.ql │ │ │ ├── OperatorCall2.expected │ │ │ ├── OperatorCall2.ql │ │ │ ├── OperatorCall3.expected │ │ │ ├── OperatorCall3.ql │ │ │ ├── OperatorCall4.expected │ │ │ ├── OperatorCall4.ql │ │ │ ├── OperatorCall5.expected │ │ │ ├── OperatorCall5.ql │ │ │ ├── OperatorCall6.expected │ │ │ ├── OperatorCall6.ql │ │ │ ├── OperatorCall7.expected │ │ │ ├── OperatorCall7.ql │ │ │ ├── ParameterAccess1.expected │ │ │ ├── ParameterAccess1.ql │ │ │ ├── ParameterAccess2.expected │ │ │ ├── ParameterAccess2.ql │ │ │ ├── ParameterAccess3.expected │ │ │ ├── ParameterAccess3.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ ├── PropertyAccess1.expected │ │ │ ├── PropertyAccess1.ql │ │ │ ├── PropertyAccess2.expected │ │ │ ├── PropertyAccess2.ql │ │ │ ├── PropertyAccess3.expected │ │ │ ├── PropertyAccess3.ql │ │ │ ├── PropertyAccess4.expected │ │ │ ├── PropertyAccess4.ql │ │ │ ├── QualifiableExpr.expected │ │ │ ├── QualifiableExpr.ql │ │ │ ├── Qualifiers.cs │ │ │ ├── Reduced1.expected │ │ │ ├── Reduced1.ql │ │ │ ├── ReducedExpression.cs │ │ │ ├── RemoveEventExpr1.expected │ │ │ ├── RemoveEventExpr1.ql │ │ │ ├── StripCasts.expected │ │ │ ├── StripCasts.ql │ │ │ ├── ThisAccess1.expected │ │ │ ├── ThisAccess1.ql │ │ │ ├── Tuples1.expected │ │ │ ├── Tuples1.ql │ │ │ ├── Typeof1.expected │ │ │ ├── Typeof1.ql │ │ │ ├── Typeof2.expected │ │ │ ├── Typeof2.ql │ │ │ ├── Typeof3.expected │ │ │ ├── Typeof3.ql │ │ │ ├── Typeof4.expected │ │ │ ├── Typeof4.ql │ │ │ ├── Typeof5.expected │ │ │ ├── Typeof5.ql │ │ │ └── expressions.cs │ │ ├── exprorstmtparent │ │ │ ├── A.cs │ │ │ ├── B.cs │ │ │ ├── C.cs │ │ │ ├── Callable.expected │ │ │ ├── Callable.ql │ │ │ ├── Declaration.expected │ │ │ ├── Declaration.ql │ │ │ ├── Indexer.expected │ │ │ ├── Indexer.ql │ │ │ ├── Parameter.expected │ │ │ ├── Parameter.ql │ │ │ ├── Property.expected │ │ │ └── Property.ql │ │ ├── extractor │ │ │ ├── longstrings │ │ │ │ ├── LongStrings.cs │ │ │ │ ├── LongStrings.expected │ │ │ │ └── LongStrings.ql │ │ │ └── tagstack │ │ │ │ ├── A.cs │ │ │ │ ├── B.cs │ │ │ │ ├── Bodies.expected │ │ │ │ ├── Bodies.ql │ │ │ │ ├── Classes.expected │ │ │ │ ├── Classes.ql │ │ │ │ ├── Methods.expected │ │ │ │ └── Methods.ql │ │ ├── fields │ │ │ ├── Constants1.expected │ │ │ ├── Constants1.ql │ │ │ ├── Constants2.expected │ │ │ ├── Constants2.ql │ │ │ ├── Constants3.expected │ │ │ ├── Constants3.ql │ │ │ ├── Constants4.expected │ │ │ ├── Constants4.ql │ │ │ ├── Constants5.expected │ │ │ ├── Constants5.ql │ │ │ ├── Fields1.expected │ │ │ ├── Fields1.ql │ │ │ ├── Fields10.expected │ │ │ ├── Fields10.ql │ │ │ ├── Fields11.expected │ │ │ ├── Fields11.ql │ │ │ ├── Fields2.expected │ │ │ ├── Fields2.ql │ │ │ ├── Fields3.expected │ │ │ ├── Fields3.ql │ │ │ ├── Fields4.expected │ │ │ ├── Fields4.ql │ │ │ ├── Fields5.expected │ │ │ ├── Fields5.ql │ │ │ ├── Fields6.expected │ │ │ ├── Fields6.ql │ │ │ ├── Fields7.expected │ │ │ ├── Fields7.ql │ │ │ ├── Fields8.expected │ │ │ ├── Fields8.ql │ │ │ ├── Fields9.expected │ │ │ ├── Fields9.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ └── fields.cs │ │ ├── filters │ │ │ └── ClassifyFiles │ │ │ │ ├── ClassifyFiles.expected │ │ │ │ ├── ClassifyFiles.qlref │ │ │ │ ├── DontModify.cs │ │ │ │ ├── File.autogen.cs │ │ │ │ ├── File.designer.cs │ │ │ │ ├── File.feature.cs │ │ │ │ ├── File.g.cs │ │ │ │ ├── GeneratedAssembly.cs │ │ │ │ ├── GeneratedAttribute.cs │ │ │ │ ├── GeneratedBy.cs │ │ │ │ ├── NUnitTest.cs │ │ │ │ ├── NormalFile.cs │ │ │ │ ├── VisualStudioTest.cs │ │ │ │ └── XUnitTest.cs │ │ ├── folding │ │ │ ├── Folding1.expected │ │ │ ├── Folding1.ql │ │ │ ├── UnaryFolding.cs │ │ │ └── folding.cs │ │ ├── frameworks │ │ │ ├── EntityFramework │ │ │ │ ├── Dataflow.expected │ │ │ │ ├── Dataflow.ql │ │ │ │ ├── EntityFramework.cs │ │ │ │ ├── EntityFrameworkCore.cs │ │ │ │ ├── FlowSummaries.expected │ │ │ │ ├── FlowSummaries.ql │ │ │ │ ├── MappedProperties.expected │ │ │ │ ├── MappedProperties.ql │ │ │ │ ├── SqlExprs.expected │ │ │ │ ├── SqlExprs.ql │ │ │ │ ├── StoredFlowSources.expected │ │ │ │ └── StoredFlowSources.ql │ │ │ ├── JsonNET │ │ │ │ ├── Json.cs │ │ │ │ ├── Json.expected │ │ │ │ └── Json.ql │ │ │ ├── NHibernate │ │ │ │ ├── DataFlow.expected │ │ │ │ ├── DataFlow.ql │ │ │ │ ├── SqlExprs.expected │ │ │ │ ├── SqlExprs.ql │ │ │ │ ├── StoredFlowSources.expected │ │ │ │ ├── StoredFlowSources.ql │ │ │ │ └── nhibernate.cs │ │ │ ├── format │ │ │ │ ├── StringFormatItemParameter.expected │ │ │ │ ├── StringFormatItemParameter.ql │ │ │ │ └── Strings.cs │ │ │ ├── sql │ │ │ │ ├── Sql1.expected │ │ │ │ ├── Sql1.ql │ │ │ │ └── sql.cs │ │ │ ├── system │ │ │ │ ├── Dispose │ │ │ │ │ ├── Dispose.cs │ │ │ │ │ ├── Dispose.expected │ │ │ │ │ └── Dispose.ql │ │ │ │ ├── Equals │ │ │ │ │ ├── Equals.cs │ │ │ │ │ ├── Equals.expected │ │ │ │ │ └── Equals.ql │ │ │ │ ├── System │ │ │ │ │ ├── System.cs │ │ │ │ │ ├── System.expected │ │ │ │ │ └── System.ql │ │ │ │ └── data │ │ │ │ │ └── entity │ │ │ │ │ ├── entity.cs │ │ │ │ │ ├── entity.expected │ │ │ │ │ └── entity.ql │ │ │ ├── test │ │ │ │ ├── Assertions.expected │ │ │ │ ├── Assertions.ql │ │ │ │ ├── DoesNotReturnIf.cs │ │ │ │ ├── NUnit1.expected │ │ │ │ ├── NUnit1.ql │ │ │ │ ├── NUnit2.expected │ │ │ │ ├── NUnit2.ql │ │ │ │ ├── Test.expected │ │ │ │ ├── Test.ql │ │ │ │ ├── VisualStudio.cs │ │ │ │ ├── XUnit.cs │ │ │ │ └── nunit.cs │ │ │ └── wcf │ │ │ │ ├── WCF.cs │ │ │ │ ├── wcf.expected │ │ │ │ └── wcf.ql │ │ ├── generatedcode │ │ │ ├── dontmodify.cs │ │ │ ├── file.cs │ │ │ ├── file.designer.cs │ │ │ ├── file.feature.cs │ │ │ ├── file.g.cs │ │ │ ├── generatedassembly.cs │ │ │ ├── generatedattribute.cs │ │ │ ├── generatedby.cs │ │ │ ├── generatedcode.expected │ │ │ └── generatedcode.ql │ │ ├── generics │ │ │ ├── ConsistencyChecks.expected │ │ │ ├── ConsistencyChecks.ql │ │ │ ├── Generics.expected │ │ │ ├── Generics.ql │ │ │ ├── Nesting.cs │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ └── generics.cs │ │ ├── goto │ │ │ ├── Goto1.expected │ │ │ ├── Goto1.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ └── goto.cs │ │ ├── indexers │ │ │ ├── Indexers1.expected │ │ │ ├── Indexers1.ql │ │ │ ├── Indexers10.expected │ │ │ ├── Indexers10.ql │ │ │ ├── Indexers11.expected │ │ │ ├── Indexers11.ql │ │ │ ├── Indexers12.expected │ │ │ ├── Indexers12.ql │ │ │ ├── Indexers2.expected │ │ │ ├── Indexers2.ql │ │ │ ├── Indexers3.expected │ │ │ ├── Indexers3.ql │ │ │ ├── Indexers4.expected │ │ │ ├── Indexers4.ql │ │ │ ├── Indexers5.expected │ │ │ ├── Indexers5.ql │ │ │ ├── Indexers6.expected │ │ │ ├── Indexers6.ql │ │ │ ├── Indexers7.expected │ │ │ ├── Indexers7.ql │ │ │ ├── Indexers8.expected │ │ │ ├── Indexers8.ql │ │ │ ├── Indexers9.expected │ │ │ ├── Indexers9.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ └── indexers.cs │ │ ├── initializers │ │ │ ├── CollectionInitializer.expected │ │ │ ├── CollectionInitializer.ql │ │ │ ├── MemberInitializer.expected │ │ │ ├── MemberInitializer.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ └── initializers.cs │ │ ├── linq │ │ │ ├── Linq1.expected │ │ │ ├── Linq1.ql │ │ │ ├── Linq2.expected │ │ │ ├── Linq2.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ └── queries.cs │ │ ├── members │ │ │ ├── AccessModifiers.expected │ │ │ ├── AccessModifiers.ql │ │ │ ├── GetLabel.expected │ │ │ ├── GetLabel.ql │ │ │ ├── Members.cs │ │ │ ├── PrintAst.expected │ │ │ └── PrintAst.qlref │ │ ├── methods │ │ │ ├── ExtensionMethods.expected │ │ │ ├── ExtensionMethods.ql │ │ │ ├── Methods1.expected │ │ │ ├── Methods1.ql │ │ │ ├── Methods2.expected │ │ │ ├── Methods2.ql │ │ │ ├── Methods3.expected │ │ │ ├── Methods3.ql │ │ │ ├── Methods4.expected │ │ │ ├── Methods4.ql │ │ │ ├── Methods5.expected │ │ │ ├── Methods5.ql │ │ │ ├── Parameters1.expected │ │ │ ├── Parameters1.ql │ │ │ ├── Parameters2.expected │ │ │ ├── Parameters2.ql │ │ │ ├── Parameters3.expected │ │ │ ├── Parameters3.ql │ │ │ ├── Parameters4.expected │ │ │ ├── Parameters4.ql │ │ │ ├── Parameters5.expected │ │ │ ├── Parameters5.ql │ │ │ ├── Parameters6.expected │ │ │ ├── Parameters6.ql │ │ │ ├── Parameters7.expected │ │ │ ├── Parameters7.ql │ │ │ ├── Parameters8.expected │ │ │ ├── Parameters8.ql │ │ │ ├── Parameters9.expected │ │ │ ├── Parameters9.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ └── methods.cs │ │ ├── modifiers │ │ │ ├── Effectively.expected │ │ │ ├── Effectively.ql │ │ │ ├── Modifiers.cs │ │ │ ├── Modifiers.expected │ │ │ └── Modifiers.ql │ │ ├── namespaces │ │ │ ├── Namespaces1.expected │ │ │ ├── Namespaces1.ql │ │ │ ├── Namespaces10.expected │ │ │ ├── Namespaces10.ql │ │ │ ├── Namespaces11.expected │ │ │ ├── Namespaces11.ql │ │ │ ├── Namespaces12.expected │ │ │ ├── Namespaces12.ql │ │ │ ├── Namespaces2.expected │ │ │ ├── Namespaces2.ql │ │ │ ├── Namespaces3.expected │ │ │ ├── Namespaces3.ql │ │ │ ├── Namespaces4.expected │ │ │ ├── Namespaces4.ql │ │ │ ├── Namespaces5.expected │ │ │ ├── Namespaces5.ql │ │ │ ├── Namespaces6.expected │ │ │ ├── Namespaces6.ql │ │ │ ├── Namespaces7.expected │ │ │ ├── Namespaces7.ql │ │ │ ├── Namespaces8.expected │ │ │ ├── Namespaces8.ql │ │ │ ├── Namespaces9.expected │ │ │ ├── Namespaces9.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ └── namespaces.cs │ │ ├── nestedtypes │ │ │ ├── NestedTypes1.expected │ │ │ ├── NestedTypes1.ql │ │ │ ├── NestedTypes2.expected │ │ │ ├── NestedTypes2.ql │ │ │ ├── NestedTypes3.expected │ │ │ ├── NestedTypes3.ql │ │ │ ├── NestedTypes4.expected │ │ │ ├── NestedTypes4.ql │ │ │ ├── NestedTypes5.expected │ │ │ ├── NestedTypes5.ql │ │ │ ├── NestedTypes6.expected │ │ │ ├── NestedTypes6.ql │ │ │ ├── NestedTypes7.expected │ │ │ ├── NestedTypes7.ql │ │ │ ├── NestedTypes8.expected │ │ │ ├── NestedTypes8.ql │ │ │ ├── NestedTypes9.expected │ │ │ ├── NestedTypes9.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ └── nestedtypes.cs │ │ ├── nullable │ │ │ ├── NullableExpressions.expected │ │ │ ├── NullableExpressions.ql │ │ │ └── nullable.cs │ │ ├── operators │ │ │ ├── Operators1.expected │ │ │ ├── Operators1.ql │ │ │ ├── Operators2.expected │ │ │ ├── Operators2.ql │ │ │ ├── Operators3.expected │ │ │ ├── Operators3.ql │ │ │ ├── Operators4.expected │ │ │ ├── Operators4.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ └── operators.cs │ │ ├── overrides │ │ │ ├── Implements.expected │ │ │ ├── Implements.ql │ │ │ ├── Overrides1.expected │ │ │ ├── Overrides1.ql │ │ │ ├── Overrides10.expected │ │ │ ├── Overrides10.ql │ │ │ ├── Overrides11.expected │ │ │ ├── Overrides11.ql │ │ │ ├── Overrides12.expected │ │ │ ├── Overrides12.ql │ │ │ ├── Overrides13.expected │ │ │ ├── Overrides13.ql │ │ │ ├── Overrides14.expected │ │ │ ├── Overrides14.ql │ │ │ ├── Overrides15.expected │ │ │ ├── Overrides15.ql │ │ │ ├── Overrides16.expected │ │ │ ├── Overrides16.ql │ │ │ ├── Overrides17.expected │ │ │ ├── Overrides17.ql │ │ │ ├── Overrides18.expected │ │ │ ├── Overrides18.ql │ │ │ ├── Overrides19.expected │ │ │ ├── Overrides19.ql │ │ │ ├── Overrides2.expected │ │ │ ├── Overrides2.ql │ │ │ ├── Overrides20.expected │ │ │ ├── Overrides20.ql │ │ │ ├── Overrides21.expected │ │ │ ├── Overrides21.ql │ │ │ ├── Overrides22.expected │ │ │ ├── Overrides22.ql │ │ │ ├── Overrides3.expected │ │ │ ├── Overrides3.ql │ │ │ ├── Overrides4.expected │ │ │ ├── Overrides4.ql │ │ │ ├── Overrides5.expected │ │ │ ├── Overrides5.ql │ │ │ ├── Overrides6.expected │ │ │ ├── Overrides6.ql │ │ │ ├── Overrides7.expected │ │ │ ├── Overrides7.ql │ │ │ ├── Overrides8.expected │ │ │ ├── Overrides8.ql │ │ │ ├── Overrides9.expected │ │ │ ├── Overrides9.ql │ │ │ ├── overrides.cs │ │ │ └── targets.cs │ │ ├── partial │ │ │ ├── MethodIsPartial.expected │ │ │ ├── MethodIsPartial.ql │ │ │ ├── Partial.cs │ │ │ ├── Partial1.expected │ │ │ ├── Partial1.ql │ │ │ ├── Partial2.expected │ │ │ ├── Partial2.ql │ │ │ ├── PartialMethodBody.expected │ │ │ ├── PartialMethodBody.ql │ │ │ ├── PrintAst.expected │ │ │ └── PrintAst.qlref │ │ ├── properties │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ ├── Properties1.expected │ │ │ ├── Properties1.ql │ │ │ ├── Properties10.expected │ │ │ ├── Properties10.ql │ │ │ ├── Properties11.expected │ │ │ ├── Properties11.ql │ │ │ ├── Properties12.expected │ │ │ ├── Properties12.ql │ │ │ ├── Properties13.expected │ │ │ ├── Properties13.ql │ │ │ ├── Properties14.expected │ │ │ ├── Properties14.ql │ │ │ ├── Properties15.expected │ │ │ ├── Properties15.ql │ │ │ ├── Properties16.expected │ │ │ ├── Properties16.ql │ │ │ ├── Properties17.expected │ │ │ ├── Properties17.ql │ │ │ ├── Properties18.expected │ │ │ ├── Properties18.ql │ │ │ ├── Properties2.expected │ │ │ ├── Properties2.ql │ │ │ ├── Properties3.expected │ │ │ ├── Properties3.ql │ │ │ ├── Properties4.expected │ │ │ ├── Properties4.ql │ │ │ ├── Properties5.expected │ │ │ ├── Properties5.ql │ │ │ ├── Properties6.expected │ │ │ ├── Properties6.ql │ │ │ ├── Properties7.expected │ │ │ ├── Properties7.ql │ │ │ ├── Properties8.expected │ │ │ ├── Properties8.ql │ │ │ ├── Properties9.expected │ │ │ ├── Properties9.ql │ │ │ └── properties.cs │ │ ├── regressions │ │ │ ├── CheckExtractionSucceeded.expected │ │ │ ├── CheckExtractionSucceeded.ql │ │ │ ├── DanglingFieldAccess.expected │ │ │ ├── DanglingFieldAccess.ql │ │ │ ├── NameOf.expected │ │ │ ├── NameOf.ql │ │ │ ├── Program.cs │ │ │ ├── TypeMentions.expected │ │ │ ├── TypeMentions.ql │ │ │ ├── WhileIs.expected │ │ │ └── WhileIs.ql │ │ ├── security │ │ │ └── dataflow │ │ │ │ └── flowsources │ │ │ │ ├── StoredFlowSources.expected │ │ │ │ ├── StoredFlowSources.ql │ │ │ │ ├── data.cs │ │ │ │ └── entity.cs │ │ ├── standalone │ │ │ ├── controlflow │ │ │ │ ├── ControlFlow.cs │ │ │ │ ├── cfg.expected │ │ │ │ └── cfg.ql │ │ │ ├── errorrecovery │ │ │ │ ├── DiagnosticsAndErrors.expected │ │ │ │ ├── DiagnosticsAndErrors.ql │ │ │ │ ├── ErrorCalls.expected │ │ │ │ ├── ErrorCalls.ql │ │ │ │ ├── ErrorTypes.expected │ │ │ │ ├── ErrorTypes.ql │ │ │ │ ├── Methods.expected │ │ │ │ ├── Methods.ql │ │ │ │ └── errors.cs │ │ │ ├── normalmode │ │ │ │ ├── normal.cs │ │ │ │ ├── normal.expected │ │ │ │ └── normal.ql │ │ │ ├── regressions │ │ │ │ ├── ConstCase.expected │ │ │ │ ├── ConstCase.ql │ │ │ │ ├── QualifierAccess.expected │ │ │ │ ├── QualifierAccess.ql │ │ │ │ └── regressions.cs │ │ │ └── standalonemode │ │ │ │ ├── standalone.cs │ │ │ │ ├── standalone.expected │ │ │ │ └── standalone.ql │ │ ├── statements │ │ │ ├── Block1.expected │ │ │ ├── Block1.ql │ │ │ ├── Block2.expected │ │ │ ├── Block2.ql │ │ │ ├── Block3.expected │ │ │ ├── Block3.ql │ │ │ ├── Block4.expected │ │ │ ├── Block4.ql │ │ │ ├── Break1.expected │ │ │ ├── Break1.ql │ │ │ ├── Checked1.expected │ │ │ ├── Checked1.ql │ │ │ ├── Continue1.expected │ │ │ ├── Continue1.ql │ │ │ ├── Do1.expected │ │ │ ├── Do1.ql │ │ │ ├── Do2.expected │ │ │ ├── Do2.ql │ │ │ ├── Expr1.expected │ │ │ ├── Expr1.ql │ │ │ ├── Fixed1.expected │ │ │ ├── Fixed1.ql │ │ │ ├── Fixed2.expected │ │ │ ├── Fixed2.ql │ │ │ ├── For1.expected │ │ │ ├── For1.ql │ │ │ ├── For2.expected │ │ │ ├── For2.ql │ │ │ ├── For3.expected │ │ │ ├── For3.ql │ │ │ ├── For4.expected │ │ │ ├── For4.ql │ │ │ ├── Foreach1.expected │ │ │ ├── Foreach1.ql │ │ │ ├── Foreach2.expected │ │ │ ├── Foreach2.ql │ │ │ ├── Foreach3.expected │ │ │ ├── Foreach3.ql │ │ │ ├── Goto1.expected │ │ │ ├── Goto1.ql │ │ │ ├── Goto2.expected │ │ │ ├── Goto2.ql │ │ │ ├── If1.expected │ │ │ ├── If1.ql │ │ │ ├── If2.expected │ │ │ ├── If2.ql │ │ │ ├── Labeled1.expected │ │ │ ├── Labeled1.ql │ │ │ ├── LocalConstDecl1.expected │ │ │ ├── LocalConstDecl1.ql │ │ │ ├── LocalConstDecl2.expected │ │ │ ├── LocalConstDecl2.ql │ │ │ ├── LocalConstDecl3.expected │ │ │ ├── LocalConstDecl3.ql │ │ │ ├── LocalVarDecl1.expected │ │ │ ├── LocalVarDecl1.ql │ │ │ ├── LocalVarDecl2.expected │ │ │ ├── LocalVarDecl2.ql │ │ │ ├── LocalVarDecl3.expected │ │ │ ├── LocalVarDecl3.ql │ │ │ ├── LocalVarDecl4.expected │ │ │ ├── LocalVarDecl4.ql │ │ │ ├── LocalVarDecl5.expected │ │ │ ├── LocalVarDecl5.ql │ │ │ ├── Lock1.expected │ │ │ ├── Lock1.ql │ │ │ ├── Lock2.expected │ │ │ ├── Lock2.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ ├── Return1.expected │ │ │ ├── Return1.ql │ │ │ ├── Return2.expected │ │ │ ├── Return2.ql │ │ │ ├── StripSingletonBlocks.expected │ │ │ ├── StripSingletonBlocks.ql │ │ │ ├── Switch1.expected │ │ │ ├── Switch1.ql │ │ │ ├── Switch2.expected │ │ │ ├── Switch2.ql │ │ │ ├── Switch3.expected │ │ │ ├── Switch3.ql │ │ │ ├── Switch4.expected │ │ │ ├── Switch4.ql │ │ │ ├── Throw1.expected │ │ │ ├── Throw1.ql │ │ │ ├── TryCatch1.expected │ │ │ ├── TryCatch1.ql │ │ │ ├── TryCatch2.expected │ │ │ ├── TryCatch2.ql │ │ │ ├── TryCatch3.expected │ │ │ ├── TryCatch3.ql │ │ │ ├── TryCatch4.expected │ │ │ ├── TryCatch4.ql │ │ │ ├── TryCatch5.expected │ │ │ ├── TryCatch5.ql │ │ │ ├── TryCatch6.expected │ │ │ ├── TryCatch6.ql │ │ │ ├── TryCatch7.expected │ │ │ ├── TryCatch7.ql │ │ │ ├── TryCatch8.expected │ │ │ ├── TryCatch8.ql │ │ │ ├── TryFinally1.expected │ │ │ ├── TryFinally1.ql │ │ │ ├── Unchecked1.expected │ │ │ ├── Unchecked1.ql │ │ │ ├── Using1.expected │ │ │ ├── Using1.ql │ │ │ ├── Using2.expected │ │ │ ├── Using2.ql │ │ │ ├── Using3.expected │ │ │ ├── Using3.ql │ │ │ ├── While1.expected │ │ │ ├── While1.ql │ │ │ ├── While2.expected │ │ │ ├── While2.ql │ │ │ ├── YieldBreak1.expected │ │ │ ├── YieldBreak1.ql │ │ │ ├── YieldReturn1.expected │ │ │ ├── YieldReturn1.ql │ │ │ ├── YieldReturn2.expected │ │ │ ├── YieldReturn2.ql │ │ │ ├── YieldReturn3.expected │ │ │ ├── YieldReturn3.ql │ │ │ ├── fixed.cs │ │ │ └── statements.cs │ │ ├── tokens │ │ │ ├── Tokens1.expected │ │ │ ├── Tokens1.ql │ │ │ ├── Tokens2.expected │ │ │ ├── Tokens2.ql │ │ │ ├── Tokens3.expected │ │ │ ├── Tokens3.ql │ │ │ └── tokens.cs │ │ ├── tostringwithtypes │ │ │ ├── ToStringWithTypes.cs │ │ │ ├── toStringWithTypes.expected │ │ │ └── toStringWithTypes.ql │ │ ├── typeMentions │ │ │ ├── NullableDisabled.cs │ │ │ ├── NullableEnabled.cs │ │ │ ├── TypeMentions.expected │ │ │ └── TypeMentions.ql │ │ ├── types │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ ├── Types1.expected │ │ │ ├── Types1.ql │ │ │ ├── Types10.expected │ │ │ ├── Types10.ql │ │ │ ├── Types11.expected │ │ │ ├── Types11.ql │ │ │ ├── Types12.expected │ │ │ ├── Types12.ql │ │ │ ├── Types13.expected │ │ │ ├── Types13.ql │ │ │ ├── Types14.expected │ │ │ ├── Types14.ql │ │ │ ├── Types15.expected │ │ │ ├── Types15.ql │ │ │ ├── Types16.expected │ │ │ ├── Types16.ql │ │ │ ├── Types17.expected │ │ │ ├── Types17.ql │ │ │ ├── Types18.expected │ │ │ ├── Types18.ql │ │ │ ├── Types19.expected │ │ │ ├── Types19.ql │ │ │ ├── Types2.expected │ │ │ ├── Types2.ql │ │ │ ├── Types20.expected │ │ │ ├── Types20.ql │ │ │ ├── Types21.expected │ │ │ ├── Types21.ql │ │ │ ├── Types22.expected │ │ │ ├── Types22.ql │ │ │ ├── Types23.expected │ │ │ ├── Types23.ql │ │ │ ├── Types24.expected │ │ │ ├── Types24.ql │ │ │ ├── Types25.expected │ │ │ ├── Types25.ql │ │ │ ├── Types26.expected │ │ │ ├── Types26.ql │ │ │ ├── Types27.expected │ │ │ ├── Types27.ql │ │ │ ├── Types28.expected │ │ │ ├── Types28.ql │ │ │ ├── Types29.expected │ │ │ ├── Types29.ql │ │ │ ├── Types3.expected │ │ │ ├── Types3.ql │ │ │ ├── Types30.expected │ │ │ ├── Types30.ql │ │ │ ├── Types31.expected │ │ │ ├── Types31.ql │ │ │ ├── Types32.expected │ │ │ ├── Types32.ql │ │ │ ├── Types33.expected │ │ │ ├── Types33.ql │ │ │ ├── Types34.expected │ │ │ ├── Types34.ql │ │ │ ├── Types35.expected │ │ │ ├── Types35.ql │ │ │ ├── Types36.expected │ │ │ ├── Types36.ql │ │ │ ├── Types4.expected │ │ │ ├── Types4.ql │ │ │ ├── Types5.expected │ │ │ ├── Types5.ql │ │ │ ├── Types6.expected │ │ │ ├── Types6.ql │ │ │ ├── Types7.expected │ │ │ ├── Types7.ql │ │ │ ├── Types8.expected │ │ │ ├── Types8.ql │ │ │ ├── Types9.expected │ │ │ ├── Types9.ql │ │ │ └── types.cs │ │ ├── unification │ │ │ ├── Unification.cs │ │ │ ├── Unification.expected │ │ │ └── Unification.ql │ │ └── unsafe │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ ├── unsafe.cs │ │ │ ├── unsafe1.expected │ │ │ ├── unsafe1.ql │ │ │ ├── unsafe2.expected │ │ │ ├── unsafe2.ql │ │ │ ├── unsafe3.expected │ │ │ ├── unsafe3.ql │ │ │ ├── unsafe4.expected │ │ │ └── unsafe4.ql │ │ ├── qlpack.yml │ │ ├── queries.xml │ │ ├── query-tests │ │ ├── API Abuse │ │ │ ├── CallToGCCollect │ │ │ │ ├── CallToGCCollect.expected │ │ │ │ ├── CallToGCCollect.qlref │ │ │ │ └── CallToGCCollectBad.cs │ │ │ ├── CallToObsoleteMethod │ │ │ │ ├── CallToObsoleteMethod.cs │ │ │ │ ├── CallToObsoleteMethod.expected │ │ │ │ ├── CallToObsoleteMethod.qlref │ │ │ │ ├── CallToObsoleteMethodBad.cs │ │ │ │ └── CallToObsoleteMethodGood.cs │ │ │ ├── ClassDoesNotImplementEquals │ │ │ │ ├── ClassDoesNotImplementEquals.cs │ │ │ │ ├── ClassDoesNotImplementEquals.expected │ │ │ │ ├── ClassDoesNotImplementEquals.qlref │ │ │ │ ├── ClassDoesNotImplementEqualsBad.cs │ │ │ │ └── ClassDoesNotImplementEqualsGood.cs │ │ │ ├── ClassImplementsICloneable │ │ │ │ ├── ClassImplementsICloneable.expected │ │ │ │ ├── ClassImplementsICloneable.qlref │ │ │ │ └── ClassImplementsICloneableBad.cs │ │ │ ├── DisposeNotCalledOnException │ │ │ │ ├── DisposeNotCalledOnException.cs │ │ │ │ ├── DisposeNotCalledOnException.expected │ │ │ │ ├── DisposeNotCalledOnException.qlref │ │ │ │ ├── DisposeNotCalledOnExceptionBad.cs │ │ │ │ └── DisposeNotCalledOnExceptionGood.cs │ │ │ ├── FormatInvalid │ │ │ │ ├── FormatInvalid.cs │ │ │ │ ├── FormatInvalid.expected │ │ │ │ ├── FormatInvalid.qlref │ │ │ │ ├── FormatInvalidBad.cs │ │ │ │ ├── FormatInvalidGood.cs │ │ │ │ ├── FormatMissingArgument.cs │ │ │ │ ├── FormatMissingArgumentBad.cs │ │ │ │ ├── FormatMissingArgumentGood.cs │ │ │ │ ├── FormatUnusedArgument.cs │ │ │ │ └── FormatUnusedArgumentBad.cs │ │ │ ├── InconsistentEqualsGetHashCode │ │ │ │ ├── InconsistentEqualsGetHashCode.cs │ │ │ │ ├── InconsistentEqualsGetHashCode.expected │ │ │ │ ├── InconsistentEqualsGetHashCode.qlref │ │ │ │ ├── InconsistentEqualsGetHashCodeBad.cs │ │ │ │ └── InconsistentEqualsGetHashCodeGood.cs │ │ │ ├── IncorrectCompareToSignature │ │ │ │ ├── IncorrectCompareToSignature.cs │ │ │ │ ├── IncorrectCompareToSignature.expected │ │ │ │ ├── IncorrectCompareToSignature.qlref │ │ │ │ ├── IncorrectCompareToSignatureBad.cs │ │ │ │ └── IncorrectCompareToSignatureGood.cs │ │ │ ├── IncorrectEqualsSignature │ │ │ │ ├── IncorrectEqualsSignature.cs │ │ │ │ ├── IncorrectEqualsSignature.expected │ │ │ │ ├── IncorrectEqualsSignature.qlref │ │ │ │ ├── IncorrectEqualsSignatureBad.cs │ │ │ │ └── IncorrectEqualsSignatureGood.cs │ │ │ ├── MissingDisposeCall │ │ │ │ ├── MissingDisposeCall.cs │ │ │ │ ├── MissingDisposeCall.expected │ │ │ │ ├── MissingDisposeCall.qlref │ │ │ │ ├── MissingDisposeCallBad.cs │ │ │ │ └── MissingDisposeCallGood.cs │ │ │ ├── MissingDisposeMethod │ │ │ │ ├── MissingDisposeMethod.cs │ │ │ │ ├── MissingDisposeMethod.expected │ │ │ │ ├── MissingDisposeMethod.qlref │ │ │ │ ├── MissingDisposeMethodBad.cs │ │ │ │ └── MissingDisposeMethodGood.cs │ │ │ ├── NoDisposeCallOnLocalIDisposable │ │ │ │ ├── Class1.cs_ │ │ │ │ ├── DisposalTests.dll │ │ │ │ ├── NoDisposeCallOnLocalIDisposable.cs │ │ │ │ ├── NoDisposeCallOnLocalIDisposable.expected │ │ │ │ ├── NoDisposeCallOnLocalIDisposable.qlref │ │ │ │ ├── NoDisposeCallOnLocalIDisposableBad.cs │ │ │ │ └── NoDisposeCallOnLocalIDisposableGood.cs │ │ │ ├── NonOverridingMethod │ │ │ │ ├── NonOverridingMethod.cs │ │ │ │ ├── NonOverridingMethod.expected │ │ │ │ ├── NonOverridingMethod.qlref │ │ │ │ ├── NonOverridingMethodBad.cs │ │ │ │ └── NonOverridingMethodGood.cs │ │ │ ├── NullArgumentToEquals │ │ │ │ ├── NullArgumentToEquals.cs │ │ │ │ ├── NullArgumentToEquals.expected │ │ │ │ ├── NullArgumentToEquals.qlref │ │ │ │ ├── NullArgumentToEqualsBad.cs │ │ │ │ └── NullArgumentToEqualsGood.cs │ │ │ └── UncheckedReturnValue │ │ │ │ ├── UncheckedReturnValue.cs │ │ │ │ ├── UncheckedReturnValue.expected │ │ │ │ ├── UncheckedReturnValue.qlref │ │ │ │ └── UncheckedReturnValueBad.cs │ │ ├── ASP │ │ │ ├── BlockCodeResponseWrite │ │ │ │ ├── BlockCodeResponseWrite.expected │ │ │ │ ├── BlockCodeResponseWrite.qlref │ │ │ │ ├── BlockCodeResponseWriteBad.aspx │ │ │ │ ├── BlockCodeResponseWriteGood.aspx │ │ │ │ └── test.aspx │ │ │ ├── ComplexInlineCode │ │ │ │ ├── ComplexInlineCode.expected │ │ │ │ ├── ComplexInlineCode.qlref │ │ │ │ ├── ComplexInlineCodeBad.aspx │ │ │ │ ├── ComplexInlineCodeGood.aspx │ │ │ │ └── test.aspx │ │ │ ├── NonInternationalizedText │ │ │ │ ├── NonInternationalizedText.expected │ │ │ │ ├── NonInternationalizedText.qlref │ │ │ │ ├── NonInternationalizedTextBad.aspx │ │ │ │ ├── NonInternationalizedTextGood.aspx │ │ │ │ └── test.aspx │ │ │ └── SplitControlStructure │ │ │ │ ├── SplitControlStructure.expected │ │ │ │ ├── SplitControlStructure.qlref │ │ │ │ ├── SplitControlStructureBad.aspx │ │ │ │ ├── SplitControlStructureGood.aspx │ │ │ │ └── test.aspx │ │ ├── AlertSuppression │ │ │ ├── AlertSuppression.cs │ │ │ ├── AlertSuppression.expected │ │ │ ├── AlertSuppression.qlref │ │ │ └── AlertSuppressionWindows.cs │ │ ├── Architecture │ │ │ ├── Dependencies │ │ │ │ └── MutualDependency │ │ │ │ │ ├── ExtractorOptions.cs │ │ │ │ │ ├── MutualDependency.expected │ │ │ │ │ ├── MutualDependency.qlref │ │ │ │ │ ├── MutualDependencyBad.cs │ │ │ │ │ └── MutualDependencyGood.cs │ │ │ └── Refactoring Opportunities │ │ │ │ ├── FeatureEnvy │ │ │ │ ├── FeatureEnvy.expected │ │ │ │ ├── FeatureEnvy.qlref │ │ │ │ ├── FeatureEnvyBad.cs │ │ │ │ └── FeatureEnvyGood.cs │ │ │ │ └── InappropriateIntimacy │ │ │ │ ├── InappropriateIntimacy.cs │ │ │ │ ├── InappropriateIntimacy.expected │ │ │ │ └── InappropriateIntimacy.qlref │ │ ├── Bad Practices │ │ │ ├── Comments │ │ │ │ ├── CommentedOutCode │ │ │ │ │ ├── CommentedOutCode.cs │ │ │ │ │ ├── CommentedOutCode.expected │ │ │ │ │ └── CommentedOutCode.qlref │ │ │ │ └── TodoComments │ │ │ │ │ ├── TodoComments.cs │ │ │ │ │ ├── TodoComments.expected │ │ │ │ │ ├── TodoComments.qlref │ │ │ │ │ └── TodoCommentsBad.cs │ │ │ ├── Control-Flow │ │ │ │ └── ConstantCondition │ │ │ │ │ ├── ConstantCondition.cs │ │ │ │ │ ├── ConstantCondition.expected │ │ │ │ │ ├── ConstantCondition.qlref │ │ │ │ │ ├── ConstantConditionBad.cs │ │ │ │ │ ├── ConstantConditionGood.cs │ │ │ │ │ ├── ConstantConditionalExpressionCondition.cs │ │ │ │ │ ├── ConstantDoCondition.cs │ │ │ │ │ ├── ConstantForCondition.cs │ │ │ │ │ ├── ConstantIfCondition.cs │ │ │ │ │ ├── ConstantNullCoalescingLeftHandOperand.cs │ │ │ │ │ └── ConstantWhileCondition.cs │ │ │ ├── Declarations │ │ │ │ ├── EmptyInterface │ │ │ │ │ ├── EmptyInterface.expected │ │ │ │ │ ├── EmptyInterface.qlref │ │ │ │ │ ├── EmptyInterfaceBad.cs │ │ │ │ │ └── EmptyInterfaceGood.cs │ │ │ │ ├── LocalScopeVariableShadowsMember │ │ │ │ │ ├── ExtractorOptions.cs │ │ │ │ │ ├── LocalScopeVariableShadowsMember.cs │ │ │ │ │ ├── LocalScopeVariableShadowsMember.expected │ │ │ │ │ ├── LocalScopeVariableShadowsMember.qlref │ │ │ │ │ ├── LocalScopeVariableShadowsMemberBad.cs │ │ │ │ │ └── LocalScopeVariableShadowsMemberGood.cs │ │ │ │ ├── NoConstantsOnly │ │ │ │ │ ├── NoConstantsOnly.cs │ │ │ │ │ ├── NoConstantsOnly.expected │ │ │ │ │ ├── NoConstantsOnly.qlref │ │ │ │ │ └── NoConstantsOnlyBad.cs │ │ │ │ └── TooManyRefParameters │ │ │ │ │ ├── TooManyRefParameters.expected │ │ │ │ │ ├── TooManyRefParameters.qlref │ │ │ │ │ ├── TooManyRefParametersBad.cs │ │ │ │ │ └── TooManyRefParametersGood.cs │ │ │ ├── EmptyCatchBlock │ │ │ │ ├── EmptyCatchBlock.cs │ │ │ │ ├── EmptyCatchBlock.expected │ │ │ │ └── EmptyCatchBlock.qlref │ │ │ ├── Implementation Hiding │ │ │ │ ├── AbstractToConcreteCollection │ │ │ │ │ ├── AbstractToConcreteCollection.cs │ │ │ │ │ ├── AbstractToConcreteCollection.expected │ │ │ │ │ ├── AbstractToConcreteCollection.qlref │ │ │ │ │ └── AbstractToConcreteCollectionBad.cs │ │ │ │ ├── ExposeRepresentation │ │ │ │ │ ├── ExposeRepresentation.cs │ │ │ │ │ ├── ExposeRepresentation.expected │ │ │ │ │ ├── ExposeRepresentation.qlref │ │ │ │ │ ├── ExposeRepresentationBad.cs │ │ │ │ │ ├── ExposeRepresentationGood1.cs │ │ │ │ │ └── ExposeRepresentationGood2.cs │ │ │ │ └── StaticArray │ │ │ │ │ ├── StaticArray.cs │ │ │ │ │ ├── StaticArray.expected │ │ │ │ │ ├── StaticArray.qlref │ │ │ │ │ ├── StaticArrayBad.cs │ │ │ │ │ └── StaticArrayGood.cs │ │ │ ├── Naming Conventions │ │ │ │ ├── ConfusingMethodNames │ │ │ │ │ ├── ConfusingMethodNames.expected │ │ │ │ │ ├── ConfusingMethodNames.qlref │ │ │ │ │ └── Program.cs │ │ │ │ └── VariableNameTooShort │ │ │ │ │ ├── VariableNameTooShort.cs │ │ │ │ │ ├── VariableNameTooShort.expected │ │ │ │ │ └── VariableNameTooShort.qlref │ │ │ └── VirtualCallInConstructorOrDestructor │ │ │ │ ├── VirtualCallInConstructorOrDestructor.cs │ │ │ │ ├── VirtualCallInConstructorOrDestructor.expected │ │ │ │ └── VirtualCallInConstructorOrDestructor.qlref │ │ ├── CSI │ │ │ └── CompareIdenticalValues │ │ │ │ ├── CompareIdenticalValues.cs │ │ │ │ ├── CompareIdenticalValues.expected │ │ │ │ └── CompareIdenticalValues.qlref │ │ ├── Concurrency │ │ │ ├── FutileSyncOnField │ │ │ │ ├── FutileSyncOnField.cs │ │ │ │ ├── FutileSyncOnField.expected │ │ │ │ └── FutileSyncOnField.qlref │ │ │ ├── LockOrder │ │ │ │ ├── LockOrder.cs │ │ │ │ ├── LockOrder.expected │ │ │ │ ├── LockOrder.qlref │ │ │ │ ├── LockOrderBad.cs │ │ │ │ └── LockOrderGood.cs │ │ │ ├── LockThis │ │ │ │ ├── LockThis.cs │ │ │ │ ├── LockThis.expected │ │ │ │ └── LockThis.qlref │ │ │ ├── LockedWait │ │ │ │ ├── LockedWait.cs │ │ │ │ ├── LockedWait.expected │ │ │ │ └── LockedWait.qlref │ │ │ ├── SynchSetUnsynchGet │ │ │ │ ├── SynchSetUnsynchGet.cs │ │ │ │ ├── SynchSetUnsynchGet.expected │ │ │ │ └── SynchSetUnsynchGet.qlref │ │ │ ├── UnsafeLazyInitialization │ │ │ │ ├── UnsafeLazyInitialization.cs │ │ │ │ ├── UnsafeLazyInitialization.expected │ │ │ │ └── UnsafeLazyInitialization.qlref │ │ │ └── UnsynchronizedStaticAccess │ │ │ │ ├── UnsynchronizedStaticAccess.cs │ │ │ │ ├── UnsynchronizedStaticAccess.expected │ │ │ │ └── UnsynchronizedStaticAccess.qlref │ │ ├── Configuration │ │ │ └── PasswordInConfigurationFile │ │ │ │ ├── EmptyPasswordInConfigurationFile.expected │ │ │ │ ├── EmptyPasswordInConfigurationFile.qlref │ │ │ │ ├── PasswordInConfigurationFile.expected │ │ │ │ ├── PasswordInConfigurationFile.qlref │ │ │ │ ├── config.xml │ │ │ │ └── hello.cs │ │ ├── Dead Code │ │ │ ├── DeadStoreOfLocal │ │ │ │ ├── DeadStoreOfLocal.cs │ │ │ │ ├── DeadStoreOfLocal.expected │ │ │ │ ├── DeadStoreOfLocal.qlref │ │ │ │ ├── DeadStoreOfLocalBad.cs │ │ │ │ └── DeadStoreOfLocalGood.cs │ │ │ ├── NonAssignedFields │ │ │ │ ├── NonAssignedFields.cs │ │ │ │ ├── NonAssignedFields.expected │ │ │ │ └── NonAssignedFields.qlref │ │ │ ├── Tests │ │ │ │ ├── DeadRefTypes.expected │ │ │ │ ├── DeadRefTypes.qlref │ │ │ │ ├── UnusedField.expected │ │ │ │ ├── UnusedField.qlref │ │ │ │ ├── UnusedMethod.expected │ │ │ │ ├── UnusedMethod.qlref │ │ │ │ ├── deadcode.cs │ │ │ │ ├── nunit.cs │ │ │ │ └── regression.cs │ │ │ └── consts.cs │ │ ├── Documentation │ │ │ ├── XmldocExtraParam.expected │ │ │ ├── XmldocExtraParam.qlref │ │ │ ├── XmldocExtraTypeParam.expected │ │ │ ├── XmldocExtraTypeParam.qlref │ │ │ ├── XmldocMissing.expected │ │ │ ├── XmldocMissing.qlref │ │ │ ├── XmldocMissingException.expected │ │ │ ├── XmldocMissingException.qlref │ │ │ ├── XmldocMissingParam.expected │ │ │ ├── XmldocMissingParam.qlref │ │ │ ├── XmldocMissingReturn.expected │ │ │ ├── XmldocMissingReturn.qlref │ │ │ ├── XmldocMissingSummary.expected │ │ │ ├── XmldocMissingSummary.qlref │ │ │ ├── XmldocMissingTypeParam.expected │ │ │ ├── XmldocMissingTypeParam.qlref │ │ │ └── documentation.cs │ │ ├── EmptyBlock │ │ │ ├── EmptyBlock.cs │ │ │ ├── EmptyBlock.expected │ │ │ └── EmptyBlock.qlref │ │ ├── Language Abuse │ │ │ ├── CatchOfGenericException │ │ │ │ ├── CatchOfGenericException.cs │ │ │ │ ├── CatchOfGenericException.expected │ │ │ │ └── CatchOfGenericException.qlref │ │ │ ├── ChainedIs │ │ │ │ ├── ChainedIs.cs │ │ │ │ ├── ChainedIs.expected │ │ │ │ └── ChainedIs.qlref │ │ │ ├── DubiousTypeTestOfThis │ │ │ │ ├── DubiousTypeTestOfThis.cs │ │ │ │ ├── DubiousTypeTestOfThis.expected │ │ │ │ ├── DubiousTypeTestOfThis.qlref │ │ │ │ └── DubiousTypeTestOfThis2.cs │ │ │ ├── ForeachCapture │ │ │ │ ├── ForeachCapture.cs │ │ │ │ ├── ForeachCapture.expected │ │ │ │ └── ForeachCapture.qlref │ │ │ ├── MissedReadonlyOpportunity │ │ │ │ ├── MissedReadonlyOpportunity.cs │ │ │ │ ├── MissedReadonlyOpportunity.expected │ │ │ │ ├── MissedReadonlyOpportunity.qlref │ │ │ │ ├── MissedReadonlyOpportunityBad.cs │ │ │ │ └── MissedReadonlyOpportunityGood.cs │ │ │ ├── MissedTernaryOpportunity │ │ │ │ ├── MissedTernaryOpportunity.cs │ │ │ │ ├── MissedTernaryOpportunity.expected │ │ │ │ └── MissedTernaryOpportunity.qlref │ │ │ ├── NestedIf │ │ │ │ ├── NestedIf.expected │ │ │ │ ├── NestedIf.qlref │ │ │ │ └── nestedif.cs │ │ │ ├── RethrowException │ │ │ │ ├── RethrowException.cs │ │ │ │ ├── RethrowException.expected │ │ │ │ └── RethrowException.qlref │ │ │ ├── SimplifyBoolExpr │ │ │ │ ├── SimplifyBoolExpr.cs │ │ │ │ ├── SimplifyBoolExpr.expected │ │ │ │ ├── SimplifyBoolExpr.qlref │ │ │ │ ├── SimplifyBoolExprBad.cs │ │ │ │ └── SimplifyBoolExprGood.cs │ │ │ ├── UselessCastToSelf │ │ │ │ ├── UselessCastToSelf.cs │ │ │ │ ├── UselessCastToSelf.expected │ │ │ │ └── UselessCastToSelf.qlref │ │ │ ├── UselessIsBeforeAs │ │ │ │ ├── UselessIsBeforeAs.cs │ │ │ │ ├── UselessIsBeforeAs.expected │ │ │ │ └── UselessIsBeforeAs.qlref │ │ │ ├── UselessNullCoalescingExpression │ │ │ │ ├── UselessNullCoalescingExpression.cs │ │ │ │ ├── UselessNullCoalescingExpression.expected │ │ │ │ └── UselessNullCoalescingExpression.qlref │ │ │ └── UselessUpcast │ │ │ │ ├── UselessUpcast.cs │ │ │ │ ├── UselessUpcast.expected │ │ │ │ ├── UselessUpcast.qlref │ │ │ │ ├── UselessUpcastBad.cs │ │ │ │ └── UselessUpcastGood.cs │ │ ├── Likely Bugs │ │ │ ├── BadCheckOdd │ │ │ │ ├── BadCheckOdd.cs │ │ │ │ ├── BadCheckOdd.expected │ │ │ │ └── BadCheckOdd.qlref │ │ │ ├── Collections │ │ │ │ ├── ContainerLengthCmpOffByOne │ │ │ │ │ ├── ContainerLengthCmpOffByOne.cs │ │ │ │ │ ├── ContainerLengthCmpOffByOne.expected │ │ │ │ │ └── ContainerLengthCmpOffByOne.qlref │ │ │ │ └── ContainerSizeCmpZero │ │ │ │ │ ├── ContainerSizeCmpZero.cs │ │ │ │ │ ├── ContainerSizeCmpZero.expected │ │ │ │ │ └── ContainerSizeCmpZero.qlref │ │ │ ├── ConstantComparison │ │ │ │ ├── ConstantComparison.cs │ │ │ │ ├── ConstantComparison.expected │ │ │ │ └── ConstantComparison.qlref │ │ │ ├── DangerousNonShortCircuitLogic │ │ │ │ ├── DangerousNonShortCircuitLogic.cs │ │ │ │ ├── DangerousNonShortCircuitLogic.expected │ │ │ │ └── DangerousNonShortCircuitLogic.qlref │ │ │ ├── Dynamic │ │ │ │ ├── BadDynamicCall.expected │ │ │ │ ├── BadDynamicCall.qlref │ │ │ │ └── dynamic.cs │ │ │ ├── EqualsArray │ │ │ │ ├── EqualsArray.cs │ │ │ │ ├── EqualsArray.expected │ │ │ │ └── EqualsArray.qlref │ │ │ ├── EqualsUsesAs │ │ │ │ ├── EqualsUsesAs.cs │ │ │ │ ├── EqualsUsesAs.expected │ │ │ │ └── EqualsUsesAs.qlref │ │ │ ├── EqualsUsesIs │ │ │ │ ├── EqualsUsesIs.cs │ │ │ │ ├── EqualsUsesIs.expected │ │ │ │ └── EqualsUsesIs.qlref │ │ │ ├── HashedButNoHash │ │ │ │ ├── HashedButNoHash.cs │ │ │ │ ├── HashedButNoHash.expected │ │ │ │ └── HashedButNoHash.qlref │ │ │ ├── IncomparableEquals │ │ │ │ ├── IncomparableEquals.cs │ │ │ │ ├── IncomparableEquals.expected │ │ │ │ └── IncomparableEquals.qlref │ │ │ ├── InconsistentCompareTo │ │ │ │ ├── InconsistentCompareTo.cs │ │ │ │ ├── InconsistentCompareTo.expected │ │ │ │ └── InconsistentCompareTo.qlref │ │ │ ├── MishandlingJapaneseEra │ │ │ │ ├── MishandlingJapaneseEra.expected │ │ │ │ ├── MishandlingJapaneseEra.qlref │ │ │ │ └── Program.cs │ │ │ ├── NestedLoopsSameVariable │ │ │ │ ├── NestedLoopsSameVariable.cs │ │ │ │ ├── NestedLoopsSameVariable.expected │ │ │ │ ├── NestedLoopsSameVariable.qlref │ │ │ │ └── Test.cs │ │ │ ├── ObjectComparison │ │ │ │ ├── ObjectComparison.cs │ │ │ │ ├── ObjectComparison.expected │ │ │ │ └── ObjectComparison.qlref │ │ │ ├── PossibleLossOfPrecision │ │ │ │ ├── PossibleLossOfPrecision.cs │ │ │ │ ├── PossibleLossOfPrecision.expected │ │ │ │ └── PossibleLossOfPrecision.qlref │ │ │ ├── RandomUsedOnce │ │ │ │ ├── RandomUsedOnce.cs │ │ │ │ ├── RandomUsedOnce.expected │ │ │ │ └── RandomUsedOnce.qlref │ │ │ ├── RecursiveEquals │ │ │ │ ├── RecursiveEquals.cs │ │ │ │ ├── RecursiveEquals.expected │ │ │ │ └── RecursiveEquals.qlref │ │ │ ├── SelfAssignment │ │ │ │ ├── SelfAssignment.expected │ │ │ │ ├── SelfAssignment.qlref │ │ │ │ └── selfassigns.cs │ │ │ ├── StaticFieldWrittenByInstance │ │ │ │ ├── StaticFieldWrittenByInstance.cs │ │ │ │ ├── StaticFieldWrittenByInstance.expected │ │ │ │ └── StaticFieldWrittenByInstance.qlref │ │ │ ├── StringBuilderCharInit │ │ │ │ ├── StringBufferCharInit.expected │ │ │ │ ├── StringBufferCharInit.qlref │ │ │ │ └── StringBuilderCharInit.cs │ │ │ ├── ThreadUnsafeICryptoTransform │ │ │ │ ├── ThreadUnsafeICryptoTransform.cs │ │ │ │ ├── ThreadUnsafeICryptoTransform.expected │ │ │ │ └── ThreadUnsafeICryptoTransform.qlref │ │ │ ├── ThreadUnsafeICryptoTransformLambda │ │ │ │ ├── ThreadUnsafeICryptoTransformLambda.cs │ │ │ │ ├── ThreadUnsafeICryptoTransformLambda.expected │ │ │ │ └── ThreadUnsafeICryptoTransformLambda.qlref │ │ │ ├── UncheckedCastInEquals │ │ │ │ ├── UncheckedCastInEquals.cs │ │ │ │ ├── UncheckedCastInEquals.expected │ │ │ │ └── UncheckedCastInEquals.qlref │ │ │ └── UnsafeYearConstruction │ │ │ │ ├── Program.cs │ │ │ │ ├── UnsafeYearConstruction.expected │ │ │ │ └── UnsafeYearConstruction.qlref │ │ ├── MagicConstants │ │ │ ├── AttributeInts.cs │ │ │ ├── AttributeStrings.cs │ │ │ ├── AttributeStrings.expected │ │ │ ├── AttributeStrings.qlref │ │ │ ├── GeneratedCode.designer.cs │ │ │ ├── HashCode.cs │ │ │ ├── MagicConstantsNumbers.expected │ │ │ ├── MagicConstantsNumbers.qlref │ │ │ ├── MagicNumbersUseConstant.cs │ │ │ ├── MagicNumbersUseConstant.expected │ │ │ ├── MagicNumbersUseConstant.qlref │ │ │ ├── MagicStringsUseConstant.cs │ │ │ ├── MagicStringsUseConstant.expected │ │ │ ├── MagicStringsUseConstant.qlref │ │ │ └── generics.cs │ │ ├── Metrics │ │ │ ├── Files │ │ │ │ └── FLinesOfCommentedCode │ │ │ │ │ ├── file1.cs │ │ │ │ │ ├── file2.cs │ │ │ │ │ ├── flinesofcommentedcode.expected │ │ │ │ │ └── flinesofcommentedcode.qlref │ │ │ └── RefTypes │ │ │ │ └── TNumberOfFields │ │ │ │ ├── EnumSize.cs │ │ │ │ ├── EnumSize.expected │ │ │ │ └── EnumSize.qlref │ │ ├── Nullness │ │ │ ├── A.cs │ │ │ ├── Assert.cs │ │ │ ├── B.cs │ │ │ ├── C.cs │ │ │ ├── D.cs │ │ │ ├── E.cs │ │ │ ├── EqualityCheck.expected │ │ │ ├── EqualityCheck.ql │ │ │ ├── Forwarding.cs │ │ │ ├── GuardedString.cs │ │ │ ├── Implications.expected │ │ │ ├── Implications.ql │ │ │ ├── NullAlways.expected │ │ │ ├── NullAlways.qlref │ │ │ ├── NullAlwaysBad.cs │ │ │ ├── NullAlwaysGood.cs │ │ │ ├── NullCheck.expected │ │ │ ├── NullCheck.ql │ │ │ ├── NullMaybe.expected │ │ │ ├── NullMaybe.qlref │ │ │ ├── NullMaybeBad.cs │ │ │ ├── NullMaybeGood.cs │ │ │ └── StringConcatenation.cs │ │ ├── Performance │ │ │ ├── StringBuilderInLoop │ │ │ │ ├── StringBuilderInLoop.cs │ │ │ │ ├── StringBuilderInLoop.expected │ │ │ │ └── StringBuilderInLoop.qlref │ │ │ ├── StringConcatenationInLoop │ │ │ │ ├── StringConcatenationInLoop.cs │ │ │ │ ├── StringConcatenationInLoop.expected │ │ │ │ └── StringConcatenationInLoop.qlref │ │ │ └── UseTryGetValue │ │ │ │ ├── UseTryGetValue.cs │ │ │ │ ├── UseTryGetValue.expected │ │ │ │ └── UseTryGetValue.qlref │ │ ├── ReadOnlyContainer │ │ │ ├── ReadOnlyContainer.cs │ │ │ ├── ReadOnlyContainer.expected │ │ │ └── ReadOnlyContainer.qlref │ │ ├── Security Features │ │ │ ├── CWE-011 │ │ │ │ ├── ASPNetDebug.cs │ │ │ │ ├── ASPNetDebug.expected │ │ │ │ ├── ASPNetDebug.qlref │ │ │ │ ├── Web.config │ │ │ │ └── bad │ │ │ │ │ └── Web.config │ │ │ ├── CWE-016 │ │ │ │ ├── ASPNetMaxRequestLength │ │ │ │ │ ├── ASPNetMaxRequestLength.cs │ │ │ │ │ ├── ASPNetMaxRequestLength.expected │ │ │ │ │ ├── ASPNetMaxRequestLength.qlref │ │ │ │ │ ├── Web.config │ │ │ │ │ └── bad │ │ │ │ │ │ └── Web.config │ │ │ │ ├── ASPNetPagesValidateRequest │ │ │ │ │ ├── ASPNetPagesValidateRequest.expected │ │ │ │ │ ├── ASPNetPagesValidateRequest.qlref │ │ │ │ │ ├── ASPNetPagesValidateRequestBad.config │ │ │ │ │ ├── ASPNetPagesValidateRequestGood.config │ │ │ │ │ └── Program.cs │ │ │ │ └── ASPNetRequestValidationMode │ │ │ │ │ ├── ASPNetRequestValidationMode.expected │ │ │ │ │ ├── ASPNetRequestValidationMode.qlref │ │ │ │ │ ├── ASPNetRequestValidationModeBad.config │ │ │ │ │ ├── ASPNetRequestValidationModeGood.config │ │ │ │ │ └── Program.cs │ │ │ ├── CWE-020 │ │ │ │ ├── ExternalAPIsUsedWithUntrustedData.expected │ │ │ │ ├── ExternalAPIsUsedWithUntrustedData.qlref │ │ │ │ ├── RuntimeChecksBypass.cs │ │ │ │ ├── RuntimeChecksBypassBad.cs │ │ │ │ ├── RuntimeChecksBypassGood.cs │ │ │ │ ├── RuntimeChecksbypass.expected │ │ │ │ ├── RuntimeChecksbypass.qlref │ │ │ │ ├── UntrustedData.cs │ │ │ │ ├── UntrustedDataToExternalAPI.expected │ │ │ │ └── UntrustedDataToExternalAPI.qlref │ │ │ ├── CWE-022 │ │ │ │ ├── TaintedPath │ │ │ │ │ ├── TaintedPath.cs │ │ │ │ │ ├── TaintedPath.expected │ │ │ │ │ └── TaintedPath.qlref │ │ │ │ └── ZipSlip │ │ │ │ │ ├── ZipSlip.cs │ │ │ │ │ ├── ZipSlip.expected │ │ │ │ │ ├── ZipSlip.qlref │ │ │ │ │ ├── ZipSlipBad.cs │ │ │ │ │ └── ZipSlipGood.cs │ │ │ ├── CWE-078 │ │ │ │ ├── CommandInjection.cs │ │ │ │ ├── CommandInjection.expected │ │ │ │ ├── CommandInjection.qlref │ │ │ │ ├── StoredCommandInjection.cs │ │ │ │ ├── StoredCommandInjection.expected │ │ │ │ └── StoredCommandInjection.qlref │ │ │ ├── CWE-079 │ │ │ │ ├── StoredXSS │ │ │ │ │ ├── AspInline.expected │ │ │ │ │ ├── AspInline.ql │ │ │ │ │ ├── StoredXSS.cs │ │ │ │ │ ├── StoredXSS.expected │ │ │ │ │ ├── StoredXSS.qlref │ │ │ │ │ ├── XSS.cs │ │ │ │ │ ├── XSS.expected │ │ │ │ │ ├── XSS.qlref │ │ │ │ │ └── script.aspx │ │ │ │ └── XSS │ │ │ │ │ ├── XSS.expected │ │ │ │ │ ├── XSS.qlref │ │ │ │ │ ├── XSSAspNet.cs │ │ │ │ │ ├── XSSAspNetCore.cs │ │ │ │ │ ├── corestubs.cs │ │ │ │ │ └── stubs.cs │ │ │ ├── CWE-089 │ │ │ │ ├── SecondOrderSqlInjection.cs │ │ │ │ ├── SecondOrderSqlInjection.expected │ │ │ │ ├── SecondOrderSqlInjection.qlref │ │ │ │ ├── SqlInjection.cs │ │ │ │ ├── SqlInjection.expected │ │ │ │ └── SqlInjection.qlref │ │ │ ├── CWE-090 │ │ │ │ ├── LDAPInjection.cs │ │ │ │ ├── LDAPInjection.expected │ │ │ │ ├── LDAPInjection.qlref │ │ │ │ ├── StoredLDAPInjection.cs │ │ │ │ ├── StoredLDAPInjection.expected │ │ │ │ └── StoredLDAPInjection.qlref │ │ │ ├── CWE-091 │ │ │ │ └── XMLInjection │ │ │ │ │ ├── Test.cs │ │ │ │ │ ├── XMLInjection.expected │ │ │ │ │ └── XMLInjection.qlref │ │ │ ├── CWE-094 │ │ │ │ ├── CodeInjection.cs │ │ │ │ ├── CodeInjection.expected │ │ │ │ └── CodeInjection.qlref │ │ │ ├── CWE-099 │ │ │ │ ├── ResourceInjection.cs │ │ │ │ ├── ResourceInjection.expected │ │ │ │ └── ResourceInjection.qlref │ │ │ ├── CWE-112 │ │ │ │ ├── MissingXMLValidation.cs │ │ │ │ ├── MissingXMLValidation.expected │ │ │ │ └── MissingXMLValidation.qlref │ │ │ ├── CWE-114 │ │ │ │ └── AssemblyPathInjection │ │ │ │ │ ├── AssemblyPathInjection.expected │ │ │ │ │ ├── AssemblyPathInjection.qlref │ │ │ │ │ └── Test.cs │ │ │ ├── CWE-117 │ │ │ │ ├── LogForging.cs │ │ │ │ ├── LogForging.expected │ │ │ │ └── LogForging.qlref │ │ │ ├── CWE-119 │ │ │ │ ├── LocalUnvalidatedArithmetic.cs │ │ │ │ ├── LocalUnvalidatedArithmetic.expected │ │ │ │ └── LocalUnvalidatedArithmetic.qlref │ │ │ ├── CWE-134 │ │ │ │ ├── UncontrolledFormatString.cs │ │ │ │ ├── UncontrolledFormatString.expected │ │ │ │ ├── UncontrolledFormatString.qlref │ │ │ │ └── UncontrolledFormatStringBad.cs │ │ │ ├── CWE-201 │ │ │ │ └── ExposureInTransmittedData │ │ │ │ │ ├── ExposureInTransmittedData.cs │ │ │ │ │ ├── ExposureInTransmittedData.expected │ │ │ │ │ └── ExposureInTransmittedData.qlref │ │ │ ├── CWE-209 │ │ │ │ ├── ExceptionInformationExposure.cs │ │ │ │ ├── ExceptionInformationExposure.expected │ │ │ │ └── ExceptionInformationExposure.qlref │ │ │ ├── CWE-248 │ │ │ │ └── MissingASPNETGlobalErrorHandler │ │ │ │ │ ├── WebConfigOff │ │ │ │ │ ├── MissingASPNETGlobalErrorHandler.expected │ │ │ │ │ ├── MissingASPNETGlobalErrorHandler.qlref │ │ │ │ │ ├── Web.config │ │ │ │ │ └── global.asax.cs │ │ │ │ │ └── WebConfigOffButGlobal │ │ │ │ │ ├── MissingASPNETGlobalErrorHandler.expected │ │ │ │ │ ├── MissingASPNETGlobalErrorHandler.qlref │ │ │ │ │ ├── Web.config │ │ │ │ │ └── global.asax.cs │ │ │ ├── CWE-312 │ │ │ │ ├── CleartextStorage.cs │ │ │ │ ├── CleartextStorage.expected │ │ │ │ └── CleartextStorage.qlref │ │ │ ├── CWE-321 │ │ │ │ └── HardcodedSymmetricEncryptionKey │ │ │ │ │ ├── HardcodedSymmetricEncryptionKey.cs │ │ │ │ │ ├── HardcodedSymmetricEncryptionKey.expected │ │ │ │ │ ├── HardcodedSymmetricEncryptionKey.qlref │ │ │ │ │ └── Stubs.cs │ │ │ ├── CWE-327 │ │ │ │ ├── DontInstallRootCert │ │ │ │ │ ├── DontInstallRootCert.expected │ │ │ │ │ ├── DontInstallRootCert.qlref │ │ │ │ │ └── Test.cs │ │ │ │ ├── InsecureSQLConnection │ │ │ │ │ ├── InsecureSQLConnection.cs │ │ │ │ │ ├── InsecureSQLConnection.expected │ │ │ │ │ ├── InsecureSQLConnection.qlref │ │ │ │ │ └── stubs.cs │ │ │ │ └── InsufficientKeySize │ │ │ │ │ ├── InsufficientKeySize.cs │ │ │ │ │ ├── InsufficientKeySize.expected │ │ │ │ │ └── InsufficientKeySize.qlref │ │ │ ├── CWE-338 │ │ │ │ ├── InsecureRandomness.cs │ │ │ │ ├── InsecureRandomness.expected │ │ │ │ ├── InsecureRandomness.qlref │ │ │ │ └── TestInsecureRandomness.cs │ │ │ ├── CWE-352 │ │ │ │ ├── global │ │ │ │ │ ├── MissingAntiForgeryTokenValidation.cs │ │ │ │ │ ├── MissingAntiForgeryTokenValidation.expected │ │ │ │ │ └── MissingAntiForgeryTokenValidation.qlref │ │ │ │ └── missing │ │ │ │ │ ├── MissingAntiForgeryTokenValidation.cs │ │ │ │ │ ├── MissingAntiForgeryTokenValidation.expected │ │ │ │ │ └── MissingAntiForgeryTokenValidation.qlref │ │ │ ├── CWE-359 │ │ │ │ ├── ExposureOfPrivateInformation.cs │ │ │ │ ├── ExposureOfPrivateInformation.expected │ │ │ │ └── ExposureOfPrivateInformation.qlref │ │ │ ├── CWE-384 │ │ │ │ ├── AbandonSession.cs │ │ │ │ ├── AbandonSession.expected │ │ │ │ └── AbandonSession.qlref │ │ │ ├── CWE-451 │ │ │ │ └── MissingXFrameOptions │ │ │ │ │ ├── CodeAddedHeader │ │ │ │ │ ├── MissingXFrameOptions.cs │ │ │ │ │ ├── MissingXFrameOptions.expected │ │ │ │ │ ├── MissingXFrameOptions.qlref │ │ │ │ │ └── Web.config │ │ │ │ │ ├── NoHeader │ │ │ │ │ ├── MissingXFrameOptions.cs │ │ │ │ │ ├── MissingXFrameOptions.expected │ │ │ │ │ ├── MissingXFrameOptions.qlref │ │ │ │ │ └── Web.config │ │ │ │ │ └── WebConfigAddedHeader │ │ │ │ │ ├── MissingXFrameOptions.cs │ │ │ │ │ ├── MissingXFrameOptions.expected │ │ │ │ │ ├── MissingXFrameOptions.qlref │ │ │ │ │ └── Web.config │ │ │ ├── CWE-502 │ │ │ │ ├── DeserializedDelegate │ │ │ │ │ ├── DeserializedDelegate.cs │ │ │ │ │ ├── DeserializedDelegate.expected │ │ │ │ │ ├── DeserializedDelegate.qlref │ │ │ │ │ ├── DeserializedDelegateBad.cs │ │ │ │ │ └── ExtractorOptions.cs │ │ │ │ ├── UnsafeDeserialization │ │ │ │ │ ├── ExtractorOptions.cs │ │ │ │ │ ├── UnsafeDeserialization.expected │ │ │ │ │ ├── UnsafeDeserialization.qlref │ │ │ │ │ ├── UnsafeDeserializationBad.cs │ │ │ │ │ └── UnsafeDeserializationGood.cs │ │ │ │ └── UnsafeDeserializationUntrustedInput │ │ │ │ │ ├── ExtractorOptions.cs │ │ │ │ │ ├── UnsafeDeserializationUntrustedInput.expected │ │ │ │ │ ├── UnsafeDeserializationUntrustedInput.qlref │ │ │ │ │ ├── UnsafeDeserializationUntrustedInputBad.cs │ │ │ │ │ └── UnsafeDeserializationUntrustedInputGood.cs │ │ │ ├── CWE-539 │ │ │ │ └── PersistentCookie │ │ │ │ │ ├── PersistentCookie.cs │ │ │ │ │ ├── PersistentCookie.expected │ │ │ │ │ └── PersistentCookie.qlref │ │ │ ├── CWE-548 │ │ │ │ ├── ASPNetDirectoryListing.expected │ │ │ │ ├── ASPNetDirectoryListing.qlref │ │ │ │ ├── Test.cs │ │ │ │ └── web.config │ │ │ ├── CWE-601 │ │ │ │ └── UrlRedirect │ │ │ │ │ ├── UrlRedirect.cs │ │ │ │ │ ├── UrlRedirect.expected │ │ │ │ │ ├── UrlRedirect.qlref │ │ │ │ │ ├── UrlRedirectCore.cs │ │ │ │ │ └── stubs.cs │ │ │ ├── CWE-611 │ │ │ │ ├── InsecureXMLSettings.expected │ │ │ │ ├── InsecureXMLSettings.ql │ │ │ │ ├── Test.cs │ │ │ │ ├── UntrustedDataInsecureXml.expected │ │ │ │ ├── UntrustedDataInsecureXml.qlref │ │ │ │ ├── UseXmlSecureResolver.expected │ │ │ │ └── UseXmlSecureResolver.qlref │ │ │ ├── CWE-614 │ │ │ │ └── RequireSSL │ │ │ │ │ ├── AddedInCode │ │ │ │ │ ├── Program.cs │ │ │ │ │ ├── RequireSSL.expected │ │ │ │ │ ├── RequireSSL.qlref │ │ │ │ │ └── Web.config │ │ │ │ │ ├── AddedInForms │ │ │ │ │ ├── Program.cs │ │ │ │ │ ├── RequireSSL.expected │ │ │ │ │ ├── RequireSSL.qlref │ │ │ │ │ └── Web.config │ │ │ │ │ ├── HttpCookiesCorrect │ │ │ │ │ ├── Program.cs │ │ │ │ │ ├── RequireSSL.expected │ │ │ │ │ ├── RequireSSL.qlref │ │ │ │ │ └── Web.config │ │ │ │ │ └── RequireSSLMissing │ │ │ │ │ ├── Program.cs │ │ │ │ │ ├── RequireSSL.expected │ │ │ │ │ ├── RequireSSL.qlref │ │ │ │ │ └── Web.config │ │ │ ├── CWE-643 │ │ │ │ ├── StoredXPathInjection.cs │ │ │ │ ├── StoredXPathInjection.expected │ │ │ │ ├── StoredXPathInjection.qlref │ │ │ │ ├── XPathInjection.cs │ │ │ │ ├── XPathInjection.expected │ │ │ │ └── XPathInjection.qlref │ │ │ ├── CWE-730 │ │ │ │ ├── ReDoS │ │ │ │ │ ├── ExponentialRegex.cs │ │ │ │ │ ├── ExponentialRegex.expected │ │ │ │ │ ├── ExponentialRegex.ql │ │ │ │ │ ├── ReDoS.expected │ │ │ │ │ └── ReDoS.qlref │ │ │ │ ├── ReDoSGlobalTimeout │ │ │ │ │ ├── ExponentialRegex.cs │ │ │ │ │ ├── ReDoS.expected │ │ │ │ │ └── ReDoS.qlref │ │ │ │ └── RegexInjection │ │ │ │ │ ├── RegexInjection.cs │ │ │ │ │ ├── RegexInjection.expected │ │ │ │ │ └── RegexInjection.qlref │ │ │ ├── CWE-798 │ │ │ │ ├── HardcodedConnectionString.expected │ │ │ │ ├── HardcodedConnectionString.qlref │ │ │ │ ├── HardcodedCredentials.cs │ │ │ │ ├── HardcodedCredentials.expected │ │ │ │ ├── HardcodedCredentials.qlref │ │ │ │ └── TestHardcodedCredentials.cs │ │ │ ├── CWE-807 │ │ │ │ ├── ConditionalBypass.cs │ │ │ │ ├── ConditionalBypass.expected │ │ │ │ └── ConditionalBypass.qlref │ │ │ └── CWE-838 │ │ │ │ ├── HtmlEncode.cs │ │ │ │ ├── InappropriateEncoding.cs │ │ │ │ ├── InappropriateEncoding.expected │ │ │ │ ├── InappropriateEncoding.qlref │ │ │ │ ├── SqlEncode.cs │ │ │ │ └── UrlEncode.cs │ │ ├── Stubs │ │ │ ├── MinimalStubsFromSource.expected │ │ │ ├── MinimalStubsFromSource.qlref │ │ │ └── Test.cs │ │ ├── UnusedPropertyValue │ │ │ ├── UnusedPropertyValue.cs │ │ │ ├── UnusedPropertyValue.expected │ │ │ └── UnusedPropertyValue.qlref │ │ ├── UseBraces │ │ │ ├── UseBraces.cs │ │ │ ├── UseBraces.expected │ │ │ └── UseBraces.qlref │ │ ├── Useless Code │ │ │ ├── DefaultToString │ │ │ │ ├── DefaultToString.cs │ │ │ │ ├── DefaultToString.expected │ │ │ │ ├── DefaultToString.ql │ │ │ │ ├── DefaultToStringBad.cs │ │ │ │ ├── DefaultToStringGood.cs │ │ │ │ └── WriteLineArray.cs │ │ │ ├── IntGetHashCode │ │ │ │ ├── IntGetHashCode.cs │ │ │ │ ├── IntGetHashCode.expected │ │ │ │ └── IntGetHashCode.qlref │ │ │ ├── PointlessForwardingMethod │ │ │ │ ├── PointlessForwardingMethod.cs │ │ │ │ ├── PointlessForwardingMethod.expected │ │ │ │ └── PointlessForwardingMethod.qlref │ │ │ ├── RedundantToStringCall │ │ │ │ ├── RedundantToStringCall.cs │ │ │ │ ├── RedundantToStringCall.expected │ │ │ │ ├── RedundantToStringCall.qlref │ │ │ │ ├── RedundantToStringCallBad.cs │ │ │ │ └── RedundantToStringCallGood.cs │ │ │ └── UnusedLabel │ │ │ │ ├── UnusedLabel.cs │ │ │ │ ├── UnusedLabel.expected │ │ │ │ └── UnusedLabel.qlref │ │ ├── WriteOnlyContainer │ │ │ ├── WriteOnlyContainer.cs │ │ │ ├── WriteOnlyContainer.expected │ │ │ └── WriteOnlyContainer.qlref │ │ └── standalone │ │ │ ├── IncomparableEquals │ │ │ ├── IncomparableEquals.cs │ │ │ ├── IncomparableEquals.expected │ │ │ └── IncomparableEquals.qlref │ │ │ └── ObjectComparison │ │ │ ├── ObjectComparison.cs │ │ │ ├── ObjectComparison.expected │ │ │ └── ObjectComparison.qlref │ │ └── resources │ │ ├── assemblies │ │ ├── System.Data.dll │ │ ├── System.Net.Http.dll │ │ ├── System.Web.ApplicationServices.dll │ │ ├── System.Web.Mvc.dll │ │ └── System.Web.dll │ │ └── stubs │ │ ├── EntityFramework.cs │ │ ├── JsonNET.cs │ │ ├── Microsoft.CSharp.cs │ │ ├── Microsoft.VisualStudio.TestTools.UnitTesting.cs │ │ ├── NHibernate.cs │ │ ├── System.Data.cs │ │ ├── System.DirectoryServices.cs │ │ ├── System.Net.cs │ │ ├── System.Web.cs │ │ └── System.Windows.cs ├── tools │ ├── autobuild.cmd │ ├── autobuild.sh │ ├── linux64 │ │ ├── compiler-tracing.spec │ │ └── extract-csharp.sh │ ├── osx64 │ │ ├── compiler-tracing.spec │ │ └── extract-csharp.sh │ ├── pre-finalize.cmd │ ├── pre-finalize.sh │ └── win64 │ │ └── compiler-tracing.spec └── upgrades │ ├── 027e958f156862103c2ef44f77f79b030c2b1359 │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ └── upgrade.properties │ ├── 094972aab8c537db2cec0b9508361ca9d4cc2006 │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ └── upgrade.properties │ ├── 16936565fbeffa1492ef636112694d29f7c578d0 │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ └── upgrade.properties │ ├── 22d4df34563b234c6fc108ccebdffe8ae9b8e49c │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ └── upgrade.properties │ ├── 26249c105a81c61ef8738a198928de2d4b763c37 │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ └── upgrade.properties │ ├── 2fb07f0b8c65f6c89437c28caf5d99fdbcdbef2d │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ └── upgrade.properties │ ├── 34565707dfbb74188a6d7e9ef4477ca8e8dab6a4 │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ └── upgrade.properties │ ├── 57331d90231fc8247d5a5197f4ac45d502708c6a │ ├── expr_parent.ql │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ └── upgrade.properties │ ├── 5f6770a8a174aa0b651375a847d9686533d3f528 │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ └── upgrade.properties │ ├── 68db341c2ed1693c2ae6e20ad533c84138cb275a │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ └── upgrade.properties │ ├── 6b8962d52bd5ed58edb163f78467074fd7e1a127 │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ └── upgrade.properties │ ├── 90fdbc8f87761f223ef7723e4b421c5b26ecc15e │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ ├── type_annotation.ql │ └── upgrade.properties │ ├── 98e37f65f0ae39cfe1bff33908d6620ade5df0f7 │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ └── upgrade.properties │ ├── ad622770b3c38e7639883301e9e52ff1f3a4df4c │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ └── upgrade.properties │ ├── b93e202508f21bdf2e0d831e464c3b14187378cc │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ └── upgrade.properties │ ├── cf21dd4151d107ab649a2a218e7f52e355c43906 │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ └── upgrade.properties │ ├── cfaa4e90da23a5ca3f0e914fbd5ca689ba0282d9 │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ └── upgrade.properties │ ├── d8a619a011a649390ee658cbbceaa1241e08f24b │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ └── upgrade.properties │ ├── dd813977f70fcbf737b0bbe9dc8297edff713168 │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ └── upgrade.properties │ ├── ddd39829bb71811b1fcb6559c0efe34f3fb6aa03 │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ └── upgrade.properties │ ├── df0118d2d283379d89c2bec5aadda78cdae0b904 │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ └── upgrade.properties │ ├── e0531e97fc1251265b06a94b3047a1b6fa484dcc │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ └── upgrade.properties │ ├── e6442d16b7e3786d0918597c2c9fbd871ca06f77 │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ └── upgrade.properties │ ├── eedef9359e1e4e1ebcf2a1dc9d2ae75d4ea4d160 │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ └── upgrade.properties │ ├── efcd69e086a26dd33395f2ddb3113b2849399040 │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ └── upgrade.properties │ ├── f2aa2d4ac31309bd83ab633d0f40e8a442767bd1 │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ └── upgrade.properties │ ├── f5903552e3099dba41375ca19af7caca5c2e4966 │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ └── upgrade.properties │ ├── f93793ee5f6b7bec615eaa1af0a1a4dea19472bb │ ├── old.dbscheme │ ├── semmlecode.csharp.dbscheme │ └── upgrade.properties │ ├── initial │ └── semmlecode.csharp.dbscheme │ └── qlpack.yml ├── docs ├── codeql │ ├── .gitignore │ ├── .vale.ini │ ├── README.rst │ ├── _static │ │ ├── custom.css_t │ │ └── primer.css │ ├── _templates │ │ └── layout.html │ ├── codeql-cli │ │ ├── about-ql-packs.rst │ │ ├── about-the-codeql-cli.rst │ │ ├── analyzing-databases-with-the-codeql-cli.rst │ │ ├── codeql-cli-reference.rst │ │ ├── creating-codeql-databases.rst │ │ ├── creating-codeql-query-suites.rst │ │ ├── exit-codes.rst │ │ ├── getting-started-with-the-codeql-cli.rst │ │ ├── index.rst │ │ ├── query-reference-files.rst │ │ ├── sarif-output.rst │ │ ├── specifying-command-options-in-a-codeql-configuration-file.rst │ │ ├── testing-custom-queries.rst │ │ ├── testing-query-help-files.rst │ │ ├── upgrading-codeql-databases.rst │ │ ├── using-custom-queries-with-the-codeql-cli.rst │ │ └── using-the-codeql-cli.rst │ ├── codeql-for-visual-studio-code │ │ ├── .gitignore │ │ ├── about-codeql-for-visual-studio-code.rst │ │ ├── about-telemetry-in-codeql-for-visual-studio-code.rst │ │ ├── analyzing-your-projects.rst │ │ ├── customizing-settings.rst │ │ ├── exploring-data-flow-with-path-queries.rst │ │ ├── exploring-the-structure-of-your-source-code.rst │ │ ├── index.rst │ │ ├── setting-up-codeql-in-visual-studio-code.rst │ │ ├── testing-codeql-queries-in-visual-studio-code.rst │ │ └── troubleshooting-codeql-for-visual-studio-code.rst │ ├── codeql-language-guides │ │ ├── abstract-syntax-tree-classes-for-working-with-go-programs.rst │ │ ├── abstract-syntax-tree-classes-for-working-with-java-programs.rst │ │ ├── abstract-syntax-tree-classes-for-working-with-javascript-and-typescript-programs.rst │ │ ├── analyzing-control-flow-in-python.rst │ │ ├── analyzing-data-flow-in-cpp.rst │ │ ├── analyzing-data-flow-in-csharp.rst │ │ ├── analyzing-data-flow-in-java.rst │ │ ├── analyzing-data-flow-in-javascript-and-typescript.rst │ │ ├── analyzing-data-flow-in-python.rst │ │ ├── annotations-in-java.rst │ │ ├── basic-query-for-cpp-code.rst │ │ ├── basic-query-for-csharp-code.rst │ │ ├── basic-query-for-go-code.rst │ │ ├── basic-query-for-java-code.rst │ │ ├── basic-query-for-javascript-code.rst │ │ ├── basic-query-for-python-code.rst │ │ ├── codeql-for-cpp.rst │ │ ├── codeql-for-csharp.rst │ │ ├── codeql-for-go.rst │ │ ├── codeql-for-java.rst │ │ ├── codeql-for-javascript.rst │ │ ├── codeql-for-python.rst │ │ ├── codeql-library-for-cpp.rst │ │ ├── codeql-library-for-csharp.rst │ │ ├── codeql-library-for-go.rst │ │ ├── codeql-library-for-java.rst │ │ ├── codeql-library-for-javascript.rst │ │ ├── codeql-library-for-python.rst │ │ ├── codeql-library-for-typescript.rst │ │ ├── conversions-and-classes-in-cpp.rst │ │ ├── data-flow-cheat-sheet-for-javascript.rst │ │ ├── detecting-a-potential-buffer-overflow.rst │ │ ├── expressions-and-statements-in-python.rst │ │ ├── expressions-types-and-statements-in-cpp.rst │ │ ├── functions-in-cpp.rst │ │ ├── functions-in-python.rst │ │ ├── hash-consing-and-value-numbering.rst │ │ ├── index.rst │ │ ├── javadoc.rst │ │ ├── modeling-data-flow-in-go-libraries.rst │ │ ├── navigating-the-call-graph.rst │ │ ├── overflow-prone-comparisons-in-java.rst │ │ ├── refining-a-query-to-account-for-edge-cases.rst │ │ ├── specifying-additional-remote-flow-sources-for-javascript.rst │ │ ├── types-in-java.rst │ │ ├── using-api-graphs-in-python.rst │ │ ├── using-flow-labels-for-precise-data-flow-analysis.rst │ │ ├── using-range-analsis-in-cpp.rst │ │ ├── using-the-guards-library-in-cpp.rst │ │ ├── using-type-tracking-for-api-modeling.rst │ │ └── working-with-source-locations.rst │ ├── codeql-overview │ │ ├── about-codeql.rst │ │ ├── codeql-glossary.rst │ │ ├── codeql-tools.rst │ │ ├── index.rst │ │ └── supported-languages-and-frameworks.rst │ ├── conf.py │ ├── contents.rst │ ├── images │ │ ├── codeql-for-go │ │ │ ├── ast.dot │ │ │ ├── ast.png │ │ │ ├── cfg.dot │ │ │ ├── cfg.png │ │ │ ├── cfg2.dot │ │ │ ├── cfg2.png │ │ │ ├── dfg.dot │ │ │ ├── dfg.png │ │ │ ├── ssa.dot │ │ │ └── ssa.png │ │ ├── codeql-for-visual-studio-code │ │ │ ├── choose-database.png │ │ │ ├── explore-ast.png │ │ │ ├── open-extension-settings.png │ │ │ ├── open-source-file.png │ │ │ ├── open-test-explorer.png │ │ │ ├── query-history.png │ │ │ ├── run-multiple-queries.png │ │ │ ├── select-logs.png │ │ │ └── show-test-diff.png │ │ ├── monotonic-aggregates-graph.png │ │ ├── python-flow-graph.png │ │ ├── ql-select-statement-basic.png │ │ ├── ql-select-statement-filename.png │ │ ├── ql-select-statement-similarity.png │ │ ├── query-metadata.png │ │ ├── query-progress.png │ │ └── site │ │ │ └── favicon.ico │ ├── index.html │ ├── ql-language-reference │ │ ├── .gitignore │ │ ├── about-the-ql-language.rst │ │ ├── aliases.rst │ │ ├── annotations.rst │ │ ├── evaluation-of-ql-programs.rst │ │ ├── expressions.rst │ │ ├── formulas.rst │ │ ├── index.rst │ │ ├── lexical-syntax.rst │ │ ├── modules.rst │ │ ├── name-resolution.rst │ │ ├── predicates.rst │ │ ├── ql-language-specification.rst │ │ ├── queries.rst │ │ ├── recursion.rst │ │ ├── types.rst │ │ └── variables.rst │ ├── ql-training │ │ ├── _static-training │ │ │ ├── alternative-slide.svg │ │ │ ├── analysis-overview.png │ │ │ ├── curiosity.png │ │ │ ├── curiosity2.png │ │ │ ├── end-slide.svg │ │ │ ├── java-data-flow-code-example.svg │ │ │ ├── java-expression-ast.svg │ │ │ ├── mismatched-calls-and-returns.svg │ │ │ ├── normal-slide.svg │ │ │ ├── setup-slide.svg │ │ │ ├── slides-semmle-2 │ │ │ │ ├── end_slide.html │ │ │ │ ├── layout.html │ │ │ │ ├── slide.html │ │ │ │ ├── static │ │ │ │ │ ├── config.rb │ │ │ │ │ ├── js │ │ │ │ │ │ ├── hammer.js │ │ │ │ │ │ ├── modernizr.custom.45394.js │ │ │ │ │ │ ├── order.js │ │ │ │ │ │ ├── polyfills │ │ │ │ │ │ │ ├── classList.min.js │ │ │ │ │ │ │ ├── dataset.min.js │ │ │ │ │ │ │ └── history.min.js │ │ │ │ │ │ ├── prettify │ │ │ │ │ │ │ ├── lang-apollo.js │ │ │ │ │ │ │ ├── lang-clj.js │ │ │ │ │ │ │ ├── lang-css.js │ │ │ │ │ │ │ ├── lang-go.js │ │ │ │ │ │ │ ├── lang-hs.js │ │ │ │ │ │ │ ├── lang-lisp.js │ │ │ │ │ │ │ ├── lang-lua.js │ │ │ │ │ │ │ ├── lang-ml.js │ │ │ │ │ │ │ ├── lang-n.js │ │ │ │ │ │ │ ├── lang-proto.js │ │ │ │ │ │ │ ├── lang-scala.js │ │ │ │ │ │ │ ├── lang-sql.js │ │ │ │ │ │ │ ├── lang-tex.js │ │ │ │ │ │ │ ├── lang-vb.js │ │ │ │ │ │ │ ├── lang-vhdl.js │ │ │ │ │ │ │ ├── lang-wiki.js │ │ │ │ │ │ │ ├── lang-xq.js │ │ │ │ │ │ │ ├── lang-yaml.js │ │ │ │ │ │ │ ├── prettify.css │ │ │ │ │ │ │ └── prettify.js │ │ │ │ │ │ ├── require-1.0.8.min.js │ │ │ │ │ │ ├── slide-controller.js │ │ │ │ │ │ ├── slide-deck-instantiate.js │ │ │ │ │ │ ├── slide-deck.js │ │ │ │ │ │ ├── slide-testing.js │ │ │ │ │ │ └── slides.js │ │ │ │ │ ├── slide_config.js │ │ │ │ │ ├── slide_config.js_t │ │ │ │ │ └── theme │ │ │ │ │ │ ├── css │ │ │ │ │ │ ├── default.css │ │ │ │ │ │ ├── hieroglyph.css │ │ │ │ │ │ ├── io2013.css │ │ │ │ │ │ └── phone.css │ │ │ │ │ │ └── scss │ │ │ │ │ │ ├── _base.scss │ │ │ │ │ │ ├── _variables.scss │ │ │ │ │ │ ├── default.scss │ │ │ │ │ │ ├── hieroglyph.scss │ │ │ │ │ │ ├── io2013.scss │ │ │ │ │ │ └── phone.scss │ │ │ │ ├── theme.conf │ │ │ │ └── title_slide.html │ │ │ └── title-slide.svg │ │ ├── conf.py │ │ ├── cpp │ │ │ ├── bad-overflow-guard.rst │ │ │ ├── control-flow-cpp.rst │ │ │ ├── data-flow-cpp.rst │ │ │ ├── global-data-flow-cpp.rst │ │ │ ├── intro-ql-cpp.rst │ │ │ ├── program-representation-cpp.rst │ │ │ └── snprintf.rst │ │ ├── index.rst │ │ ├── java │ │ │ ├── apache-struts-java.rst │ │ │ ├── data-flow-java.rst │ │ │ ├── global-data-flow-java.rst │ │ │ ├── intro-ql-java.rst │ │ │ ├── program-representation-java.rst │ │ │ └── query-injection-java.rst │ │ ├── query-examples │ │ │ ├── cpp │ │ │ │ ├── bad-overflow-guard-1.ql │ │ │ │ ├── bad-overflow-guard-2.ql │ │ │ │ ├── bad-overflow-guard-3.ql │ │ │ │ ├── control-flow-cpp-1.ql │ │ │ │ ├── control-flow-cpp-2.ql │ │ │ │ ├── control-flow-cpp-3.ql │ │ │ │ ├── control-flow-cpp-4.ql │ │ │ │ ├── control-flow-cpp-5.ql │ │ │ │ ├── data-flow-cpp-1.ql │ │ │ │ ├── data-flow-cpp-2.ql │ │ │ │ ├── empty-if-cpp-class.ql │ │ │ │ ├── empty-if-cpp-model.ql │ │ │ │ ├── empty-if-cpp-predicate.ql │ │ │ │ ├── empty-if-cpp.ql │ │ │ │ ├── global-data-flow-cpp-1.ql │ │ │ │ └── snprintf-1.ql │ │ │ └── java │ │ │ │ ├── data-flow-java-1.ql │ │ │ │ ├── data-flow-java-2.ql │ │ │ │ ├── empty-if-java-class.ql │ │ │ │ ├── empty-if-java-model.ql │ │ │ │ ├── empty-if-java-predicate.ql │ │ │ │ ├── empty-if-java.ql │ │ │ │ ├── global-data-flow-java-1.ql │ │ │ │ ├── query-injection-java-1.ql │ │ │ │ ├── query-injection-java-2.ql │ │ │ │ └── query-injection-java-3.ql │ │ ├── slide-snippets │ │ │ ├── abstract-syntax-tree.rst │ │ │ ├── database-note.rst │ │ │ ├── global-data-flow-extra-slides.rst │ │ │ ├── global-data-flow.rst │ │ │ ├── intro-ql-general.rst │ │ │ ├── local-data-flow.rst │ │ │ └── path-queries.rst │ │ └── template.rst │ ├── qllexer.py │ ├── query-help │ │ ├── codeql-cwe-coverage.md │ │ ├── conf.py │ │ ├── cpp.rst │ │ ├── csharp.rst │ │ ├── go.rst │ │ ├── index.rst │ │ ├── java.rst │ │ ├── javascript.rst │ │ ├── python.rst │ │ └── readme.md │ ├── reusables │ │ ├── abstract-syntax-tree.rst │ │ ├── advanced-query-execution.rst │ │ ├── codeql-cli-overview.rst │ │ ├── codeql-ref-tools-further-reading.rst │ │ ├── cpp-further-reading.rst │ │ ├── csharp-further-reading.rst │ │ ├── download-lgtm-database.rst │ │ ├── extractors.rst │ │ ├── go-further-reading.rst │ │ ├── index-files-note.rst │ │ ├── java-further-reading.rst │ │ ├── javascript-further-reading.rst │ │ ├── license-note.rst │ │ ├── path-problem.rst │ │ ├── python-further-reading.rst │ │ ├── query-help-overview.rst │ │ ├── running-queries-debug.rst │ │ ├── test-qlpack.rst │ │ └── threads-query-execution.rst │ ├── support │ │ ├── conf.py │ │ ├── framework-support.rst │ │ ├── index.rst │ │ ├── language-support.rst │ │ ├── notes-ql-users.rst │ │ ├── ql-training.rst │ │ ├── read-me-project.rst │ │ └── reusables │ │ │ ├── frameworks.rst │ │ │ └── versions-compilers.rst │ ├── vale-styles │ │ ├── Microsoft │ │ │ ├── AMPM.yml │ │ │ ├── Accessibility.yml │ │ │ ├── Acronyms.yml │ │ │ ├── Adverbs.yml │ │ │ ├── Auto.yml │ │ │ ├── Avoid.yml │ │ │ ├── Backend.yml │ │ │ ├── ComplexWords.yml │ │ │ ├── Contractions.yml │ │ │ ├── Dashes.yml │ │ │ ├── DateFormat.yml │ │ │ ├── DateNumbers.yml │ │ │ ├── DateOrder.yml │ │ │ ├── Ellipses.yml │ │ │ ├── FirstPerson.yml │ │ │ ├── Foreign.yml │ │ │ ├── Gender.yml │ │ │ ├── GenderBias.yml │ │ │ ├── GeneralURL.yml │ │ │ ├── HeadingAcronyms.yml │ │ │ ├── HeadingColons.yml │ │ │ ├── HeadingPunctuation.yml │ │ │ ├── Headings.yml │ │ │ ├── Hyphens.yml │ │ │ ├── Negative.yml │ │ │ ├── Ordinal.yml │ │ │ ├── OxfordComma.yml │ │ │ ├── Passive.yml │ │ │ ├── Percentages.yml │ │ │ ├── Quotes.yml │ │ │ ├── RangeFormat.yml │ │ │ ├── RangeTime.yml │ │ │ ├── Ranges.yml │ │ │ ├── Semicolon.yml │ │ │ ├── SentenceLength.yml │ │ │ ├── Spacing.yml │ │ │ ├── Suspended.yml │ │ │ ├── Terms.yml │ │ │ ├── URLFormat.yml │ │ │ ├── Units.yml │ │ │ ├── Vocab.yml │ │ │ ├── We.yml │ │ │ ├── Wordiness.yml │ │ │ ├── meta.json │ │ │ └── vocab.txt │ │ ├── README.md │ │ └── Semmle │ │ │ ├── Headings.yml │ │ │ ├── Spelling.yml │ │ │ └── ignore.txt │ └── writing-codeql-queries │ │ ├── about-codeql-queries.rst │ │ ├── about-data-flow-analysis.rst │ │ ├── catch-the-fire-starter.rst │ │ ├── codeql-queries.rst │ │ ├── creating-path-queries.rst │ │ ├── cross-the-river.rst │ │ ├── crown-the-rightful-heir.rst │ │ ├── defining-the-results-of-a-query.rst │ │ ├── find-the-thief.rst │ │ ├── index.rst │ │ ├── introduction-to-ql.rst │ │ ├── metadata-for-codeql-queries.rst │ │ ├── providing-locations-in-codeql-queries.rst │ │ ├── ql-tutorials.rst │ │ ├── query-help-files.rst │ │ ├── river-crossing-1.ql │ │ ├── river-crossing.ql │ │ └── troubleshooting-query-performance.rst ├── experimental.md ├── pre-commit-hook-setup.md ├── ql-design-patterns.md ├── ql-libraries │ └── dataflow │ │ └── dataflow.md ├── ql-style-guide.md ├── qldoc-style-guide.md ├── query-classification-and-display.md ├── query-help-style-guide.md ├── query-metadata-style-guide.md └── supported-queries.md ├── java ├── change-notes │ ├── 2020-05-21-mongodb-sql-injection-sinks.md │ ├── 2020-05-21-websocket-taintsource.md │ ├── 2020-06-30-jooq-sql-injection-sinks.md │ ├── 2020-07-03-more-pathcreations.md │ ├── 2020-07-09-untrusted-data-to-external-api.md │ ├── 2020-07-13-stacktraceexposure-fp-fix.md │ ├── 2020-08-11-printwriter-format-xss-sink.md │ ├── 2020-08-14-dataflow-dispatch-instance-arg-ctx.md │ ├── 2020-08-17-string-formatted.md │ ├── 2020-08-24-records-flow.md │ ├── 2020-08-31-extensible-security-queries.md │ ├── 2020-09-08-blockstmt.md │ ├── 2020-09-17-exectainted-array.md │ ├── 2020-09-21-jhipster-gen-prng-query.md │ ├── 2020-09-22-hibernate-sql-sinks.md │ ├── 2020-09-23-spring-multipart-request-sources.md │ ├── 2020-10-03-android-intent-taintsource.md │ ├── 2020-10-07-fastjson-deserialization-sink.md │ ├── 2020-10-16-guava-flow-steps.md │ ├── 2020-10-27-insecure-bean-validation.md │ ├── 2020-11-04-commonslang-unsafe-deserialization-sinks.md │ ├── 2020-12-09-xxe-fp-fix.md │ ├── 2021-01-12-unsafe-hostname-verification.md │ ├── 2021-01-14-java-15-support.md │ ├── 2021-01-19-struts-xml-extraction.md │ ├── 2021-02-09-commons-string-utils.md │ ├── 2021-02-15-commons-array-utils.md │ ├── 2021-02-15-snakeyaml-fn-fix.md │ ├── 2021-02-17-apache-http.md │ ├── 2021-02-23-deprecated-jcenter-bintray.md │ ├── 2021-03-01-fluent-interface-data-flow.md │ ├── 2021-03-02-apache-text-misc.md │ ├── 2021-03-02-guava-io.md │ ├── 2021-03-05-commons-lang-randomutils.md │ ├── 2021-03-05-commons-object-utils.md │ ├── 2021-03-05-play-framework.md │ ├── 2021-03-05-regex-utils.md │ ├── 2021-03-23-guava-collections-and-preconditions.md │ ├── 2021-03-25-remove-legacy-code-duplication-library.md │ └── 2021-03-25-remove-legacy-filter-queries.md ├── config │ └── suites │ │ └── lgtm │ │ ├── java-alerts-lgtm │ │ ├── java-lgtm │ │ ├── java-metrics-lgtm │ │ └── java-queries-lgtm ├── ql │ ├── examples │ │ ├── qlpack.yml │ │ ├── queries.xml │ │ └── snippets │ │ │ ├── arrayaccess.ql │ │ │ ├── castexpr.ql │ │ │ ├── catch_exception.ql │ │ │ ├── constructor_call.ql │ │ │ ├── emptyblock.ql │ │ │ ├── emptythen.ql │ │ │ ├── eq_true.ql │ │ │ ├── extend_class.ql │ │ │ ├── field_read.ql │ │ │ ├── integer_literal.ql │ │ │ ├── method_call.ql │ │ │ ├── mutualrecursion.ql │ │ │ ├── nativemethod.ql │ │ │ ├── null_argument.ql │ │ │ ├── override_method.ql │ │ │ ├── qualifiedthis.ql │ │ │ ├── returnstatement.ql │ │ │ ├── singletonblock.ql │ │ │ ├── switchcase.ql │ │ │ ├── synchronizedmethod.ql │ │ │ ├── ternaryconditional.ql │ │ │ ├── throw_exception.ql │ │ │ ├── todocomment.ql │ │ │ ├── toomanyparams.ql │ │ │ ├── tryfinally.ql │ │ │ ├── unusedlocalvar.ql │ │ │ ├── unusedmethod.ql │ │ │ ├── unusedparam.ql │ │ │ ├── voidreturntype.ql │ │ │ └── volatilefield.ql │ ├── src │ │ ├── .project │ │ ├── .qlpath │ │ ├── .settings │ │ │ └── org.eclipse.jdt.core.prefs │ │ ├── .vs │ │ │ └── VSWorkspaceSettings.json │ │ ├── Advisory │ │ │ ├── Declarations │ │ │ │ ├── MissingOverrideAnnotation.java │ │ │ │ ├── MissingOverrideAnnotation.qhelp │ │ │ │ ├── MissingOverrideAnnotation.ql │ │ │ │ ├── NonFinalImmutableField.qhelp │ │ │ │ ├── NonFinalImmutableField.ql │ │ │ │ ├── NonPrivateField.qhelp │ │ │ │ └── NonPrivateField.ql │ │ │ ├── Deprecated Code │ │ │ │ ├── AvoidDeprecatedCallableAccess.qhelp │ │ │ │ └── AvoidDeprecatedCallableAccess.ql │ │ │ ├── Documentation │ │ │ │ ├── ImpossibleJavadocThrows.java │ │ │ │ ├── ImpossibleJavadocThrows.qhelp │ │ │ │ ├── ImpossibleJavadocThrows.ql │ │ │ │ ├── ImpossibleJavadocThrowsFix.java │ │ │ │ ├── JavadocCommon.qll │ │ │ │ ├── MissingJavadocMethods.java │ │ │ │ ├── MissingJavadocMethods.qhelp │ │ │ │ ├── MissingJavadocMethods.ql │ │ │ │ ├── MissingJavadocParameters.qhelp │ │ │ │ ├── MissingJavadocParameters.ql │ │ │ │ ├── MissingJavadocReturnValues.qhelp │ │ │ │ ├── MissingJavadocReturnValues.ql │ │ │ │ ├── MissingJavadocThrows.qhelp │ │ │ │ ├── MissingJavadocThrows.ql │ │ │ │ ├── MissingJavadocTypes.java │ │ │ │ ├── MissingJavadocTypes.qhelp │ │ │ │ ├── MissingJavadocTypes.ql │ │ │ │ ├── SpuriousJavadocParam.java │ │ │ │ ├── SpuriousJavadocParam.qhelp │ │ │ │ └── SpuriousJavadocParam.ql │ │ │ ├── Java Objects │ │ │ │ ├── AvoidCloneMethodAccess.qhelp │ │ │ │ ├── AvoidCloneMethodAccess.ql │ │ │ │ ├── AvoidCloneOverride.qhelp │ │ │ │ ├── AvoidCloneOverride.ql │ │ │ │ ├── AvoidCloneableInterface.java │ │ │ │ ├── AvoidCloneableInterface.qhelp │ │ │ │ ├── AvoidCloneableInterface.ql │ │ │ │ ├── AvoidFinalizeOverride.qhelp │ │ │ │ └── AvoidFinalizeOverride.ql │ │ │ ├── Naming │ │ │ │ ├── NamingConventionsCommon.qll │ │ │ │ ├── NamingConventionsConstants.qhelp │ │ │ │ ├── NamingConventionsConstants.ql │ │ │ │ ├── NamingConventionsMethods.qhelp │ │ │ │ ├── NamingConventionsMethods.ql │ │ │ │ ├── NamingConventionsPackages.qhelp │ │ │ │ ├── NamingConventionsPackages.ql │ │ │ │ ├── NamingConventionsRefTypes.qhelp │ │ │ │ ├── NamingConventionsRefTypes.ql │ │ │ │ ├── NamingConventionsVariables.qhelp │ │ │ │ └── NamingConventionsVariables.ql │ │ │ ├── Statements │ │ │ │ ├── MissingDefaultInSwitch.java │ │ │ │ ├── MissingDefaultInSwitch.qhelp │ │ │ │ ├── MissingDefaultInSwitch.ql │ │ │ │ ├── MissingDefaultInSwitchGood.java │ │ │ │ ├── OneStatementPerLine.qhelp │ │ │ │ ├── OneStatementPerLine.ql │ │ │ │ ├── TerminateIfElseIfWithElse.java │ │ │ │ ├── TerminateIfElseIfWithElse.qhelp │ │ │ │ ├── TerminateIfElseIfWithElse.ql │ │ │ │ └── TerminateIfElseIfWithElseGood.java │ │ │ └── Types │ │ │ │ ├── GenericsConstructor.qhelp │ │ │ │ ├── GenericsConstructor.ql │ │ │ │ ├── GenericsReturnType.qhelp │ │ │ │ ├── GenericsReturnType.ql │ │ │ │ ├── GenericsVariable.qhelp │ │ │ │ ├── GenericsVariable.ql │ │ │ │ ├── Generics_Common.inc.qhelp │ │ │ │ ├── Generics_Common.java │ │ │ │ └── Generics_CommonGood.java │ │ ├── AlertSuppression.ql │ │ ├── AlertSuppressionAnnotations.ql │ │ ├── Architecture │ │ │ ├── Dependencies │ │ │ │ ├── MutualDependency.java │ │ │ │ ├── MutualDependency.qhelp │ │ │ │ ├── MutualDependency.ql │ │ │ │ ├── MutualDependencyFix.java │ │ │ │ ├── UnusedMavenDependencies.qll │ │ │ │ ├── UnusedMavenDependency.inc.qhelp │ │ │ │ ├── UnusedMavenDependencyBinary.qhelp │ │ │ │ ├── UnusedMavenDependencyBinary.ql │ │ │ │ ├── UnusedMavenDependencySource.qhelp │ │ │ │ └── UnusedMavenDependencySource.ql │ │ │ └── Refactoring Opportunities │ │ │ │ ├── DeeplyNestedClass.java │ │ │ │ ├── DeeplyNestedClass.qhelp │ │ │ │ ├── DeeplyNestedClass.ql │ │ │ │ ├── DeeplyNestedClassFix.java │ │ │ │ ├── FeatureEnvy.java │ │ │ │ ├── FeatureEnvy.qhelp │ │ │ │ ├── FeatureEnvy.ql │ │ │ │ ├── HubClasses.qhelp │ │ │ │ ├── HubClasses.ql │ │ │ │ ├── InappropriateIntimacy.qhelp │ │ │ │ └── InappropriateIntimacy.ql │ │ ├── Compatibility │ │ │ └── JDK9 │ │ │ │ ├── JdkInternalAccess.qhelp │ │ │ │ ├── JdkInternalAccess.ql │ │ │ │ ├── JdkInternals.qll │ │ │ │ ├── JdkInternalsReplacement.qll │ │ │ │ ├── UnderscoreIdentifier.qhelp │ │ │ │ └── UnderscoreIdentifier.ql │ │ ├── Complexity │ │ │ ├── BlockWithTooManyStatements.qhelp │ │ │ ├── BlockWithTooManyStatements.ql │ │ │ ├── ComplexCondition.java │ │ │ ├── ComplexCondition.qhelp │ │ │ ├── ComplexCondition.ql │ │ │ └── ComplexConditionGood.java │ │ ├── Customizations.qll │ │ ├── DeadCode │ │ │ ├── DeadClass.java │ │ │ ├── DeadClass.qhelp │ │ │ ├── DeadClass.ql │ │ │ ├── DeadCodeDetails.inc.qhelp │ │ │ ├── DeadCodeExtraEntryPoints.inc.qhelp │ │ │ ├── DeadCodeReferences.inc.qhelp │ │ │ ├── DeadCodeSummary.inc.qhelp │ │ │ ├── DeadEnumConstant.java │ │ │ ├── DeadEnumConstant.qhelp │ │ │ ├── DeadEnumConstant.ql │ │ │ ├── DeadField.java │ │ │ ├── DeadField.qhelp │ │ │ ├── DeadField.ql │ │ │ ├── DeadFieldSerialized.java │ │ │ ├── DeadFieldWrittenTo.java │ │ │ ├── DeadMethod.java │ │ │ ├── DeadMethod.qhelp │ │ │ ├── DeadMethod.ql │ │ │ ├── DeadMethodTest.java │ │ │ ├── FLinesOfDeadCode.qhelp │ │ │ ├── FLinesOfDeadCode.ql │ │ │ ├── NamespaceClass.java │ │ │ ├── NamespaceClass2.java │ │ │ ├── UselessParameter.java │ │ │ ├── UselessParameter.qhelp │ │ │ └── UselessParameter.ql │ │ ├── Frameworks │ │ │ ├── JavaEE │ │ │ │ └── EJB │ │ │ │ │ ├── EjbContainerInterference.qhelp │ │ │ │ │ ├── EjbContainerInterference.ql │ │ │ │ │ ├── EjbFileIO.qhelp │ │ │ │ │ ├── EjbFileIO.ql │ │ │ │ │ ├── EjbGraphics.qhelp │ │ │ │ │ ├── EjbGraphics.ql │ │ │ │ │ ├── EjbNative.qhelp │ │ │ │ │ ├── EjbNative.ql │ │ │ │ │ ├── EjbReflection.qhelp │ │ │ │ │ ├── EjbReflection.ql │ │ │ │ │ ├── EjbSecurityConfiguration.qhelp │ │ │ │ │ ├── EjbSecurityConfiguration.ql │ │ │ │ │ ├── EjbSerialization.qhelp │ │ │ │ │ ├── EjbSerialization.ql │ │ │ │ │ ├── EjbSetSocketOrUrlFactory.qhelp │ │ │ │ │ ├── EjbSetSocketOrUrlFactory.ql │ │ │ │ │ ├── EjbSocketAsServer.qhelp │ │ │ │ │ ├── EjbSocketAsServer.ql │ │ │ │ │ ├── EjbStaticFieldNonFinal.qhelp │ │ │ │ │ ├── EjbStaticFieldNonFinal.ql │ │ │ │ │ ├── EjbSynchronization.qhelp │ │ │ │ │ ├── EjbSynchronization.ql │ │ │ │ │ ├── EjbThis.qhelp │ │ │ │ │ ├── EjbThis.ql │ │ │ │ │ ├── EjbThreads.qhelp │ │ │ │ │ └── EjbThreads.ql │ │ │ └── Spring │ │ │ │ ├── Architecture │ │ │ │ └── Refactoring Opportunities │ │ │ │ │ ├── MissingParentBean.qhelp │ │ │ │ │ ├── MissingParentBean.ql │ │ │ │ │ ├── MissingParentBean.xml │ │ │ │ │ ├── MissingParentBeanGood.xml │ │ │ │ │ ├── TooManyBeans.qhelp │ │ │ │ │ ├── TooManyBeans.ql │ │ │ │ │ ├── TooManyBeans.xml │ │ │ │ │ ├── UnusedBean.java │ │ │ │ │ ├── UnusedBean.qhelp │ │ │ │ │ ├── UnusedBean.ql │ │ │ │ │ ├── UnusedBean.xml │ │ │ │ │ ├── UselessPropertyOverride.qhelp │ │ │ │ │ ├── UselessPropertyOverride.ql │ │ │ │ │ └── UselessPropertyOverride.xml │ │ │ │ ├── Violations of Best Practice │ │ │ │ ├── AvoidAutowiring.qhelp │ │ │ │ ├── AvoidAutowiring.ql │ │ │ │ ├── AvoidAutowiring.xml │ │ │ │ ├── DontUseConstructorArgIndex.qhelp │ │ │ │ ├── DontUseConstructorArgIndex.ql │ │ │ │ ├── DontUseConstructorArgIndex.xml │ │ │ │ ├── ImportsFirst.qhelp │ │ │ │ ├── ImportsFirst.ql │ │ │ │ ├── ImportsFirst.xml │ │ │ │ ├── NoBeanDescription.qhelp │ │ │ │ ├── NoBeanDescription.ql │ │ │ │ ├── NoBeanDescription.xml │ │ │ │ ├── ParentShouldNotUseAbstractClass.qhelp │ │ │ │ ├── ParentShouldNotUseAbstractClass.ql │ │ │ │ ├── ParentShouldNotUseAbstractClass.xml │ │ │ │ ├── UseIdInsteadOfName.qhelp │ │ │ │ ├── UseIdInsteadOfName.ql │ │ │ │ ├── UseIdInsteadOfName.xml │ │ │ │ ├── UseLocalRef.qhelp │ │ │ │ ├── UseLocalRef.ql │ │ │ │ ├── UseLocalRef.xml │ │ │ │ ├── UseSetterInjection.java │ │ │ │ ├── UseSetterInjection.qhelp │ │ │ │ ├── UseSetterInjection.ql │ │ │ │ ├── UseSetterInjection.xml │ │ │ │ ├── UseSetterInjectionGood.java │ │ │ │ ├── UseSetterInjectionGood.xml │ │ │ │ ├── UseShortcutForms.qhelp │ │ │ │ ├── UseShortcutForms.ql │ │ │ │ └── UseShortcutForms.xml │ │ │ │ └── XML Configuration Errors │ │ │ │ ├── MissingSetters.java │ │ │ │ ├── MissingSetters.qhelp │ │ │ │ ├── MissingSetters.ql │ │ │ │ └── MissingSetters.xml │ │ ├── IDEContextual.qll │ │ ├── Language Abuse │ │ │ ├── CastThisToTypeParameter.java │ │ │ ├── CastThisToTypeParameter.qhelp │ │ │ ├── CastThisToTypeParameter.ql │ │ │ ├── CastThisToTypeParameterFix.java │ │ │ ├── ChainedInstanceof.java │ │ │ ├── ChainedInstanceof.qhelp │ │ │ ├── ChainedInstanceof.ql │ │ │ ├── DubiousDowncastOfThis.java │ │ │ ├── DubiousDowncastOfThis.qhelp │ │ │ ├── DubiousDowncastOfThis.ql │ │ │ ├── DubiousTypeTestOfThis.java │ │ │ ├── DubiousTypeTestOfThis.qhelp │ │ │ ├── DubiousTypeTestOfThis.ql │ │ │ ├── EmptyStatement.java │ │ │ ├── EmptyStatement.qhelp │ │ │ ├── EmptyStatement.ql │ │ │ ├── EnumIdentifier.java │ │ │ ├── EnumIdentifier.qhelp │ │ │ ├── EnumIdentifier.ql │ │ │ ├── ImplementsAnnotation.java │ │ │ ├── ImplementsAnnotation.qhelp │ │ │ ├── ImplementsAnnotation.ql │ │ │ ├── ImplementsAnnotationGood.java │ │ │ ├── IterableClass.qll │ │ │ ├── IterableIterator.qhelp │ │ │ ├── IterableIterator.ql │ │ │ ├── IterableIteratorBad.java │ │ │ ├── IterableIteratorGood1.java │ │ │ ├── IterableIteratorGood2.java │ │ │ ├── IterableOverview.inc.qhelp │ │ │ ├── MissedTernaryOpportunity.java │ │ │ ├── MissedTernaryOpportunity.qhelp │ │ │ ├── MissedTernaryOpportunity.ql │ │ │ ├── OverridePackagePrivate.java │ │ │ ├── OverridePackagePrivate.qhelp │ │ │ ├── OverridePackagePrivate.ql │ │ │ ├── TypeVarExtendsFinalType.java │ │ │ ├── TypeVarExtendsFinalType.qhelp │ │ │ ├── TypeVarExtendsFinalType.ql │ │ │ ├── TypeVariableHidesType.java │ │ │ ├── TypeVariableHidesType.qhelp │ │ │ ├── TypeVariableHidesType.ql │ │ │ ├── UselessNullCheck.qhelp │ │ │ ├── UselessNullCheck.ql │ │ │ ├── UselessNullCheckBad.java │ │ │ ├── UselessTypeTest.java │ │ │ ├── UselessTypeTest.qhelp │ │ │ ├── UselessTypeTest.ql │ │ │ ├── UselessUpcast.java │ │ │ ├── UselessUpcast.qhelp │ │ │ ├── UselessUpcast.ql │ │ │ ├── WrappedIterator.qhelp │ │ │ ├── WrappedIterator.ql │ │ │ ├── WrappedIteratorBad1.java │ │ │ ├── WrappedIteratorBad2.java │ │ │ └── WrappedIteratorGood.java │ │ ├── Likely Bugs │ │ │ ├── Arithmetic │ │ │ │ ├── BadAbsOfRandom.java │ │ │ │ ├── BadAbsOfRandom.qhelp │ │ │ │ ├── BadAbsOfRandom.ql │ │ │ │ ├── BadCheckOdd.java │ │ │ │ ├── BadCheckOdd.qhelp │ │ │ │ ├── BadCheckOdd.ql │ │ │ │ ├── BadCheckOddGood.java │ │ │ │ ├── CondExprTypes.java │ │ │ │ ├── CondExprTypes.qhelp │ │ │ │ ├── CondExprTypes.ql │ │ │ │ ├── ConstantExpAppearsNonConstant.java │ │ │ │ ├── ConstantExpAppearsNonConstant.qhelp │ │ │ │ ├── ConstantExpAppearsNonConstant.ql │ │ │ │ ├── ConstantExpAppearsNonConstantGood.java │ │ │ │ ├── InformationLoss.qhelp │ │ │ │ ├── InformationLoss.ql │ │ │ │ ├── IntMultToLong.java │ │ │ │ ├── IntMultToLong.qhelp │ │ │ │ ├── IntMultToLong.ql │ │ │ │ ├── IntMultToLongGood.java │ │ │ │ ├── LShiftLargerThanTypeWidth.java │ │ │ │ ├── LShiftLargerThanTypeWidth.qhelp │ │ │ │ ├── LShiftLargerThanTypeWidth.ql │ │ │ │ ├── LShiftLargerThanTypeWidthGood.java │ │ │ │ ├── MultiplyRemainder.qhelp │ │ │ │ ├── MultiplyRemainder.ql │ │ │ │ ├── OctalLiteral.java │ │ │ │ ├── OctalLiteral.qhelp │ │ │ │ ├── OctalLiteral.ql │ │ │ │ ├── RandomUsedOnce.java │ │ │ │ ├── RandomUsedOnce.qhelp │ │ │ │ ├── RandomUsedOnce.ql │ │ │ │ ├── WhitespaceContradictsPrecedence.qhelp │ │ │ │ └── WhitespaceContradictsPrecedence.ql │ │ │ ├── Cloning │ │ │ │ ├── MissingCallToSuperClone.qhelp │ │ │ │ ├── MissingCallToSuperClone.ql │ │ │ │ ├── MissingCallToSuperCloneBad.java │ │ │ │ ├── MissingCallToSuperCloneGood.java │ │ │ │ ├── MissingCloneDetails.inc.qhelp │ │ │ │ ├── MissingMethodClone.qhelp │ │ │ │ ├── MissingMethodClone.ql │ │ │ │ ├── MissingMethodCloneBad.java │ │ │ │ └── MissingMethodCloneGood.java │ │ │ ├── Collections │ │ │ │ ├── ArrayIndexOutOfBounds.qhelp │ │ │ │ ├── ArrayIndexOutOfBounds.ql │ │ │ │ ├── ArrayIndexOutOfBoundsBad.java │ │ │ │ ├── ArrayIndexOutOfBoundsGood.java │ │ │ │ ├── Containers.qll │ │ │ │ ├── ContainsTypeMismatch.java │ │ │ │ ├── ContainsTypeMismatch.qhelp │ │ │ │ ├── ContainsTypeMismatch.ql │ │ │ │ ├── ContainsTypeMismatch2.java │ │ │ │ ├── IteratorRemoveMayFail.java │ │ │ │ ├── IteratorRemoveMayFail.qhelp │ │ │ │ ├── IteratorRemoveMayFail.ql │ │ │ │ ├── IteratorRemoveMayFailGood.java │ │ │ │ ├── ReadOnlyContainer.java │ │ │ │ ├── ReadOnlyContainer.qhelp │ │ │ │ ├── ReadOnlyContainer.ql │ │ │ │ ├── RemoveTypeMismatch.java │ │ │ │ ├── RemoveTypeMismatch.qhelp │ │ │ │ ├── RemoveTypeMismatch.ql │ │ │ │ ├── RemoveTypeMismatch2.java │ │ │ │ ├── WriteOnlyContainer.java │ │ │ │ ├── WriteOnlyContainer.qhelp │ │ │ │ ├── WriteOnlyContainer.ql │ │ │ │ └── WriteOnlyContainerGood.java │ │ │ ├── Comparison │ │ │ │ ├── BitwiseSignCheck.java │ │ │ │ ├── BitwiseSignCheck.qhelp │ │ │ │ ├── BitwiseSignCheck.ql │ │ │ │ ├── BitwiseSignCheckGood.java │ │ │ │ ├── CompareIdenticalValues.java │ │ │ │ ├── CompareIdenticalValues.qhelp │ │ │ │ ├── CompareIdenticalValues.ql │ │ │ │ ├── CovariantCompareTo.java │ │ │ │ ├── CovariantCompareTo.qhelp │ │ │ │ ├── CovariantCompareTo.ql │ │ │ │ ├── CovariantEquals.java │ │ │ │ ├── CovariantEquals.qhelp │ │ │ │ ├── CovariantEquals.ql │ │ │ │ ├── DefineEqualsWhenAddingFields.java │ │ │ │ ├── DefineEqualsWhenAddingFields.qhelp │ │ │ │ ├── DefineEqualsWhenAddingFields.ql │ │ │ │ ├── Equality.qll │ │ │ │ ├── EqualsArray.java │ │ │ │ ├── EqualsArray.qhelp │ │ │ │ ├── EqualsArray.ql │ │ │ │ ├── EqualsUsesInstanceOf.java │ │ │ │ ├── EqualsUsesInstanceOf.qhelp │ │ │ │ ├── EqualsUsesInstanceOf.ql │ │ │ │ ├── HashedButNoHash.java │ │ │ │ ├── HashedButNoHash.qhelp │ │ │ │ ├── HashedButNoHash.ql │ │ │ │ ├── HashedButNoHashBad.java │ │ │ │ ├── IncomparableEquals.java │ │ │ │ ├── IncomparableEquals.qhelp │ │ │ │ ├── IncomparableEquals.ql │ │ │ │ ├── InconsistentCompareTo.java │ │ │ │ ├── InconsistentCompareTo.qhelp │ │ │ │ ├── InconsistentCompareTo.ql │ │ │ │ ├── InconsistentCompareToGood.java │ │ │ │ ├── InconsistentEqualsHashCode.java │ │ │ │ ├── InconsistentEqualsHashCode.qhelp │ │ │ │ ├── InconsistentEqualsHashCode.ql │ │ │ │ ├── InconsistentEqualsHashCodeGood.java │ │ │ │ ├── MissingInstanceofInEquals.java │ │ │ │ ├── MissingInstanceofInEquals.qhelp │ │ │ │ ├── MissingInstanceofInEquals.ql │ │ │ │ ├── NoAssignInBooleanExprs.java │ │ │ │ ├── NoAssignInBooleanExprs.qhelp │ │ │ │ ├── NoAssignInBooleanExprs.ql │ │ │ │ ├── NoComparisonOnFloats.java │ │ │ │ ├── NoComparisonOnFloats.qhelp │ │ │ │ ├── NoComparisonOnFloats.ql │ │ │ │ ├── NoComparisonOnFloatsGood.java │ │ │ │ ├── ObjectComparison.qhelp │ │ │ │ ├── ObjectComparison.ql │ │ │ │ ├── RefEqBoxed.java │ │ │ │ ├── RefEqBoxed.qhelp │ │ │ │ ├── RefEqBoxed.ql │ │ │ │ ├── RefEqBoxedBad.java │ │ │ │ ├── StringComparison.java │ │ │ │ ├── StringComparison.qhelp │ │ │ │ ├── StringComparison.ql │ │ │ │ ├── StringComparisonGood.java │ │ │ │ ├── UselessComparisonTest.java │ │ │ │ ├── UselessComparisonTest.qhelp │ │ │ │ ├── UselessComparisonTest.ql │ │ │ │ ├── UselessComparisonTest.qll │ │ │ │ ├── WrongNanComparison.qhelp │ │ │ │ └── WrongNanComparison.ql │ │ │ ├── Concurrency │ │ │ │ ├── BusyWait.java │ │ │ │ ├── BusyWait.qhelp │ │ │ │ ├── BusyWait.ql │ │ │ │ ├── BusyWaitGood.java │ │ │ │ ├── CallsToConditionWait.qhelp │ │ │ │ ├── CallsToConditionWait.ql │ │ │ │ ├── CallsToRunnableRun.java │ │ │ │ ├── CallsToRunnableRun.qhelp │ │ │ │ ├── CallsToRunnableRun.ql │ │ │ │ ├── CallsToRunnableRunFixed.java │ │ │ │ ├── DateFormatThreadUnsafe.java │ │ │ │ ├── DateFormatThreadUnsafe.qhelp │ │ │ │ ├── DateFormatThreadUnsafe.ql │ │ │ │ ├── DateFormatThreadUnsafeGood.java │ │ │ │ ├── DoubleCheckedLocking.qhelp │ │ │ │ ├── DoubleCheckedLocking.ql │ │ │ │ ├── DoubleCheckedLocking.qll │ │ │ │ ├── DoubleCheckedLockingBad1.java │ │ │ │ ├── DoubleCheckedLockingBad2.java │ │ │ │ ├── DoubleCheckedLockingBad3.java │ │ │ │ ├── DoubleCheckedLockingGood.java │ │ │ │ ├── DoubleCheckedLockingShared.inc.qhelp │ │ │ │ ├── DoubleCheckedLockingWithInitRace.qhelp │ │ │ │ ├── DoubleCheckedLockingWithInitRace.ql │ │ │ │ ├── EmptyRunMethodInThread.java │ │ │ │ ├── EmptyRunMethodInThread.qhelp │ │ │ │ ├── EmptyRunMethodInThread.ql │ │ │ │ ├── EmptyRunMethodInThreadGood.java │ │ │ │ ├── FutileSynchOnField.java │ │ │ │ ├── FutileSynchOnField.qhelp │ │ │ │ ├── FutileSynchOnField.ql │ │ │ │ ├── FutileSynchOnFieldGood.java │ │ │ │ ├── InconsistentAccess.java │ │ │ │ ├── InconsistentAccess.qhelp │ │ │ │ ├── InconsistentAccess.ql │ │ │ │ ├── LazyInitStaticField.java │ │ │ │ ├── LazyInitStaticField.qhelp │ │ │ │ ├── LazyInitStaticField.ql │ │ │ │ ├── LazyInitStaticFieldGood.java │ │ │ │ ├── NonSynchronizedOverride.qhelp │ │ │ │ ├── NonSynchronizedOverride.ql │ │ │ │ ├── NotifyNotNotifyAll.java │ │ │ │ ├── NotifyNotNotifyAll.qhelp │ │ │ │ ├── NotifyNotNotifyAll.ql │ │ │ │ ├── NotifyWithoutSynch.java │ │ │ │ ├── NotifyWithoutSynch.qhelp │ │ │ │ ├── NotifyWithoutSynch.ql │ │ │ │ ├── PriorityCalls.qhelp │ │ │ │ ├── PriorityCalls.ql │ │ │ │ ├── SleepWithLock.java │ │ │ │ ├── SleepWithLock.qhelp │ │ │ │ ├── SleepWithLock.ql │ │ │ │ ├── StartInConstructor.java │ │ │ │ ├── StartInConstructor.qhelp │ │ │ │ ├── StartInConstructor.ql │ │ │ │ ├── StartInConstructorGood.java │ │ │ │ ├── SynchOnBoxedType.java │ │ │ │ ├── SynchOnBoxedType.qhelp │ │ │ │ ├── SynchOnBoxedType.ql │ │ │ │ ├── SynchOnBoxedTypeGood.java │ │ │ │ ├── SynchSetUnsynchGet.qhelp │ │ │ │ ├── SynchSetUnsynchGet.ql │ │ │ │ ├── SynchWriteObject.qhelp │ │ │ │ ├── SynchWriteObject.ql │ │ │ │ ├── UnreleasedLock.java │ │ │ │ ├── UnreleasedLock.qhelp │ │ │ │ ├── UnreleasedLock.ql │ │ │ │ ├── WaitOutsideLoop.java │ │ │ │ ├── WaitOutsideLoop.qhelp │ │ │ │ ├── WaitOutsideLoop.ql │ │ │ │ ├── WaitWithTwoLocks.java │ │ │ │ ├── WaitWithTwoLocks.qhelp │ │ │ │ ├── WaitWithTwoLocks.ql │ │ │ │ ├── WaitWithTwoLocksGood.java │ │ │ │ ├── YieldCalls.qhelp │ │ │ │ └── YieldCalls.ql │ │ │ ├── Finalization │ │ │ │ ├── NullifiedSuperFinalize.java │ │ │ │ ├── NullifiedSuperFinalize.qhelp │ │ │ │ ├── NullifiedSuperFinalize.ql │ │ │ │ └── NullifiedSuperFinalizeGuarded.java │ │ │ ├── Frameworks │ │ │ │ ├── JUnit │ │ │ │ │ ├── BadSuiteMethod.java │ │ │ │ │ ├── BadSuiteMethod.qhelp │ │ │ │ │ ├── BadSuiteMethod.ql │ │ │ │ │ ├── TearDownNoSuper.java │ │ │ │ │ ├── TearDownNoSuper.qhelp │ │ │ │ │ ├── TearDownNoSuper.ql │ │ │ │ │ ├── TestCaseNoTests.java │ │ │ │ │ ├── TestCaseNoTests.qhelp │ │ │ │ │ └── TestCaseNoTests.ql │ │ │ │ └── Swing │ │ │ │ │ ├── BadlyOverriddenAdapter.java │ │ │ │ │ ├── BadlyOverriddenAdapter.qhelp │ │ │ │ │ ├── BadlyOverriddenAdapter.ql │ │ │ │ │ ├── BadlyOverriddenAdapterGood.java │ │ │ │ │ ├── ThreadSafety.java │ │ │ │ │ ├── ThreadSafety.qhelp │ │ │ │ │ ├── ThreadSafety.ql │ │ │ │ │ └── ThreadSafetyGood.java │ │ │ ├── I18N │ │ │ │ ├── MissingLocaleArgument.java │ │ │ │ ├── MissingLocaleArgument.qhelp │ │ │ │ └── MissingLocaleArgument.ql │ │ │ ├── Inheritance │ │ │ │ ├── NoNonFinalInConstructor.java │ │ │ │ ├── NoNonFinalInConstructor.qhelp │ │ │ │ └── NoNonFinalInConstructor.ql │ │ │ ├── Likely Typos │ │ │ │ ├── ConstructorTypo.java │ │ │ │ ├── ConstructorTypo.qhelp │ │ │ │ ├── ConstructorTypo.ql │ │ │ │ ├── ContainerSizeCmpZero.java │ │ │ │ ├── ContainerSizeCmpZero.qhelp │ │ │ │ ├── ContainerSizeCmpZero.ql │ │ │ │ ├── ContainerSizeCmpZeroGood.java │ │ │ │ ├── ContradictoryTypeChecks.java │ │ │ │ ├── ContradictoryTypeChecks.qhelp │ │ │ │ ├── ContradictoryTypeChecks.ql │ │ │ │ ├── ContradictoryTypeChecksGood.java │ │ │ │ ├── DangerousNonCircuitLogic.java │ │ │ │ ├── DangerousNonCircuitLogic.qhelp │ │ │ │ ├── DangerousNonCircuitLogic.ql │ │ │ │ ├── EqualsTypo.java │ │ │ │ ├── EqualsTypo.qhelp │ │ │ │ ├── EqualsTypo.ql │ │ │ │ ├── FormatStringsOverview.inc.qhelp │ │ │ │ ├── FormatStringsRefs.inc.qhelp │ │ │ │ ├── HashCodeTypo.java │ │ │ │ ├── HashCodeTypo.qhelp │ │ │ │ ├── HashCodeTypo.ql │ │ │ │ ├── MissingFormatArg.qhelp │ │ │ │ ├── MissingFormatArg.ql │ │ │ │ ├── MissingFormatArgBad.java │ │ │ │ ├── MissingSpaceTypo.qhelp │ │ │ │ ├── MissingSpaceTypo.ql │ │ │ │ ├── MissingSpaceTypoBad.java │ │ │ │ ├── NestedLoopsSameVariable.qhelp │ │ │ │ ├── NestedLoopsSameVariable.ql │ │ │ │ ├── SelfAssignment.java │ │ │ │ ├── SelfAssignment.qhelp │ │ │ │ ├── SelfAssignment.ql │ │ │ │ ├── StringBufferCharInit.java │ │ │ │ ├── StringBufferCharInit.qhelp │ │ │ │ ├── StringBufferCharInit.ql │ │ │ │ ├── SuspiciousDateFormat.java │ │ │ │ ├── SuspiciousDateFormat.qhelp │ │ │ │ ├── SuspiciousDateFormat.ql │ │ │ │ ├── ToStringTypo.java │ │ │ │ ├── ToStringTypo.qhelp │ │ │ │ ├── ToStringTypo.ql │ │ │ │ ├── UnusedFormatArg.qhelp │ │ │ │ ├── UnusedFormatArg.ql │ │ │ │ └── UnusedFormatArgBad.java │ │ │ ├── Nullness │ │ │ │ ├── NullAlways.java │ │ │ │ ├── NullAlways.qhelp │ │ │ │ ├── NullAlways.ql │ │ │ │ ├── NullExprDeref.java │ │ │ │ ├── NullExprDeref.qhelp │ │ │ │ ├── NullExprDeref.ql │ │ │ │ ├── NullMaybe.java │ │ │ │ ├── NullMaybe.qhelp │ │ │ │ └── NullMaybe.ql │ │ │ ├── Reflection │ │ │ │ ├── AnnotationPresentCheck.java │ │ │ │ ├── AnnotationPresentCheck.qhelp │ │ │ │ ├── AnnotationPresentCheck.ql │ │ │ │ └── AnnotationPresentCheckFix.java │ │ │ ├── Resource Leaks │ │ │ │ ├── CloseReader.java │ │ │ │ ├── CloseReader.qhelp │ │ │ │ ├── CloseReader.ql │ │ │ │ ├── CloseReaderGood.java │ │ │ │ ├── CloseReaderNested.java │ │ │ │ ├── CloseReaderNestedGood.java │ │ │ │ ├── CloseSql.java │ │ │ │ ├── CloseSql.qhelp │ │ │ │ ├── CloseSql.ql │ │ │ │ ├── CloseSqlGood.java │ │ │ │ ├── CloseType.qll │ │ │ │ ├── CloseWriter.java │ │ │ │ ├── CloseWriter.qhelp │ │ │ │ ├── CloseWriter.ql │ │ │ │ ├── CloseWriterGood.java │ │ │ │ ├── CloseWriterNested.java │ │ │ │ └── CloseWriterNestedGood.java │ │ │ ├── Serialization │ │ │ │ ├── IncorrectSerialVersionUID.java │ │ │ │ ├── IncorrectSerialVersionUID.qhelp │ │ │ │ ├── IncorrectSerialVersionUID.ql │ │ │ │ ├── IncorrectSerializableMethods.java │ │ │ │ ├── IncorrectSerializableMethods.qhelp │ │ │ │ ├── IncorrectSerializableMethods.ql │ │ │ │ ├── IncorrectSerializableMethodsSig.java │ │ │ │ ├── MissingVoidConstructorOnExternalizable.java │ │ │ │ ├── MissingVoidConstructorOnExternalizable.qhelp │ │ │ │ ├── MissingVoidConstructorOnExternalizable.ql │ │ │ │ ├── MissingVoidConstructorsOnSerializable.java │ │ │ │ ├── MissingVoidConstructorsOnSerializable.qhelp │ │ │ │ ├── MissingVoidConstructorsOnSerializable.ql │ │ │ │ ├── NonSerializableComparator.java │ │ │ │ ├── NonSerializableComparator.qhelp │ │ │ │ ├── NonSerializableComparator.ql │ │ │ │ ├── NonSerializableField.java │ │ │ │ ├── NonSerializableField.qhelp │ │ │ │ ├── NonSerializableField.ql │ │ │ │ ├── NonSerializableFieldTooGeneral.java │ │ │ │ ├── NonSerializableInnerClass.java │ │ │ │ ├── NonSerializableInnerClass.qhelp │ │ │ │ ├── NonSerializableInnerClass.ql │ │ │ │ ├── ReadResolveObject.java │ │ │ │ ├── ReadResolveObject.qhelp │ │ │ │ ├── ReadResolveObject.ql │ │ │ │ ├── TransientNotSerializable.java │ │ │ │ ├── TransientNotSerializable.qhelp │ │ │ │ └── TransientNotSerializable.ql │ │ │ ├── Statements │ │ │ │ ├── Chaining.qll │ │ │ │ ├── ContinueInFalseLoop.qhelp │ │ │ │ ├── ContinueInFalseLoop.ql │ │ │ │ ├── EmptyBlock.java │ │ │ │ ├── EmptyBlock.qhelp │ │ │ │ ├── EmptyBlock.ql │ │ │ │ ├── EmptySynchronizedBlock.qhelp │ │ │ │ ├── EmptySynchronizedBlock.ql │ │ │ │ ├── ImpossibleCast.qhelp │ │ │ │ ├── ImpossibleCast.ql │ │ │ │ ├── InconsistentCallOnResult.java │ │ │ │ ├── InconsistentCallOnResult.qhelp │ │ │ │ ├── InconsistentCallOnResult.ql │ │ │ │ ├── MissingEnumInSwitch.java │ │ │ │ ├── MissingEnumInSwitch.qhelp │ │ │ │ ├── MissingEnumInSwitch.ql │ │ │ │ ├── PartiallyMaskedCatch.java │ │ │ │ ├── PartiallyMaskedCatch.qhelp │ │ │ │ ├── PartiallyMaskedCatch.ql │ │ │ │ ├── ReturnValueIgnored.java │ │ │ │ ├── ReturnValueIgnored.qhelp │ │ │ │ ├── ReturnValueIgnored.ql │ │ │ │ ├── StaticFieldWrittenByInstance.java │ │ │ │ ├── StaticFieldWrittenByInstance.qhelp │ │ │ │ ├── StaticFieldWrittenByInstance.ql │ │ │ │ ├── UseBraces.java │ │ │ │ ├── UseBraces.qhelp │ │ │ │ ├── UseBraces.ql │ │ │ │ ├── UseBraces2.java │ │ │ │ └── UseBracesGood.java │ │ │ └── Termination │ │ │ │ ├── ConstantLoopCondition.qhelp │ │ │ │ ├── ConstantLoopCondition.ql │ │ │ │ ├── ConstantLoopConditionBad.java │ │ │ │ ├── ConstantLoopConditionGood.java │ │ │ │ ├── SpinOnField.java │ │ │ │ ├── SpinOnField.qhelp │ │ │ │ └── SpinOnField.ql │ │ ├── Metrics │ │ │ ├── Authors │ │ │ │ ├── AuthorsPerFile.qhelp │ │ │ │ └── AuthorsPerFile.ql │ │ │ ├── Callables │ │ │ │ ├── CCyclomaticComplexity.java │ │ │ │ ├── CCyclomaticComplexity.qhelp │ │ │ │ ├── CCyclomaticComplexity.ql │ │ │ │ ├── CCyclomaticComplexity_ControlFlow.gv │ │ │ │ ├── CCyclomaticComplexity_ControlFlow.png │ │ │ │ ├── CLinesOfCode.qhelp │ │ │ │ ├── CLinesOfCode.ql │ │ │ │ ├── CLinesOfComment.qhelp │ │ │ │ ├── CLinesOfComment.ql │ │ │ │ ├── CNumberOfCalls.qhelp │ │ │ │ ├── CNumberOfCalls.ql │ │ │ │ ├── CNumberOfParameters.qhelp │ │ │ │ ├── CNumberOfParameters.ql │ │ │ │ ├── CNumberOfParameters1.java │ │ │ │ ├── CNumberOfParameters1Good.java │ │ │ │ ├── CNumberOfParameters2.java │ │ │ │ ├── CNumberOfParameters2Good.java │ │ │ │ ├── CNumberOfStatements.qhelp │ │ │ │ ├── CNumberOfStatements.ql │ │ │ │ ├── StatementNestingDepth.java │ │ │ │ ├── StatementNestingDepth.qhelp │ │ │ │ ├── StatementNestingDepth.ql │ │ │ │ └── StatementNestingDepthGood.java │ │ │ ├── Dependencies │ │ │ │ ├── ExternalDependencies.ql │ │ │ │ └── ExternalDependenciesSourceLinks.ql │ │ │ ├── Files │ │ │ │ ├── CommentedOutCodeMetricOverview.inc.qhelp │ │ │ │ ├── CommentedOutCodeReferences.inc.qhelp │ │ │ │ ├── DuplicationProblems.inc.qhelp │ │ │ │ ├── FAfferentCoupling.qhelp │ │ │ │ ├── FAfferentCoupling.ql │ │ │ │ ├── FCommentRatio.qhelp │ │ │ │ ├── FCommentRatio.ql │ │ │ │ ├── FCommentRatioCommon.inc.qhelp │ │ │ │ ├── FCyclomaticComplexity.java │ │ │ │ ├── FCyclomaticComplexity.qhelp │ │ │ │ ├── FCyclomaticComplexity.ql │ │ │ │ ├── FCyclomaticComplexity_ControlFlow.gv │ │ │ │ ├── FCyclomaticComplexity_ControlFlow.png │ │ │ │ ├── FEfferentCoupling.qhelp │ │ │ │ ├── FEfferentCoupling.ql │ │ │ │ ├── FEfferentCoupling_SplitAfter.gv │ │ │ │ ├── FEfferentCoupling_SplitAfter.png │ │ │ │ ├── FEfferentCoupling_SplitBefore.gv │ │ │ │ ├── FEfferentCoupling_SplitBefore.png │ │ │ │ ├── FLines.ql │ │ │ │ ├── FLinesOfCode.qhelp │ │ │ │ ├── FLinesOfCode.ql │ │ │ │ ├── FLinesOfCodeOverview.inc.qhelp │ │ │ │ ├── FLinesOfCodeReferences.inc.qhelp │ │ │ │ ├── FLinesOfComment.qhelp │ │ │ │ ├── FLinesOfComment.ql │ │ │ │ ├── FLinesOfCommentedCode.qhelp │ │ │ │ ├── FLinesOfCommentedCode.ql │ │ │ │ ├── FLinesOfDuplicatedCode.qhelp │ │ │ │ ├── FLinesOfDuplicatedCode.ql │ │ │ │ ├── FLinesOfDuplicatedCodeCommon.inc.qhelp │ │ │ │ ├── FLinesOfSimilarCode.qhelp │ │ │ │ ├── FLinesOfSimilarCode.ql │ │ │ │ ├── FNumberOfClasses.qhelp │ │ │ │ ├── FNumberOfClasses.ql │ │ │ │ ├── FNumberOfInterfaces.qhelp │ │ │ │ ├── FNumberOfInterfaces.ql │ │ │ │ ├── FNumberOfTests.qhelp │ │ │ │ ├── FNumberOfTests.ql │ │ │ │ ├── FSelfContainedness.qhelp │ │ │ │ └── FSelfContainedness.ql │ │ │ ├── Internal │ │ │ │ └── Extents.qll │ │ │ └── RefTypes │ │ │ │ ├── TAfferentCoupling.qhelp │ │ │ │ ├── TAfferentCoupling.ql │ │ │ │ ├── TEfferentCoupling.java │ │ │ │ ├── TEfferentCoupling.qhelp │ │ │ │ ├── TEfferentCoupling.ql │ │ │ │ ├── TEfferentCouplingGood.java │ │ │ │ ├── TEfferentSourceCoupling.qhelp │ │ │ │ ├── TEfferentSourceCoupling.ql │ │ │ │ ├── TInheritanceDepth.qhelp │ │ │ │ ├── TInheritanceDepth.ql │ │ │ │ ├── TInheritanceDepth_MergeIntoSuperclassAfter.gv │ │ │ │ ├── TInheritanceDepth_MergeIntoSuperclassAfter.png │ │ │ │ ├── TInheritanceDepth_MergeIntoSuperclassBefore.gv │ │ │ │ ├── TInheritanceDepth_MergeIntoSuperclassBefore.png │ │ │ │ ├── TInheritanceDepth_UseComponentsAfter.gv │ │ │ │ ├── TInheritanceDepth_UseComponentsAfter.png │ │ │ │ ├── TInheritanceDepth_UseComponentsBefore.gv │ │ │ │ ├── TInheritanceDepth_UseComponentsBefore.png │ │ │ │ ├── TLackOfCohesionCK.qhelp │ │ │ │ ├── TLackOfCohesionCK.ql │ │ │ │ ├── TLackOfCohesionHS.qhelp │ │ │ │ ├── TLackOfCohesionHS.ql │ │ │ │ ├── TLinesOfCode.qhelp │ │ │ │ ├── TLinesOfCode.ql │ │ │ │ ├── TLinesOfComment.qhelp │ │ │ │ ├── TLinesOfComment.ql │ │ │ │ ├── TNumberOfCallables.qhelp │ │ │ │ ├── TNumberOfCallables.ql │ │ │ │ ├── TNumberOfFields.java │ │ │ │ ├── TNumberOfFields.qhelp │ │ │ │ ├── TNumberOfFields.ql │ │ │ │ ├── TNumberOfFieldsGood.java │ │ │ │ ├── TNumberOfStatements.qhelp │ │ │ │ ├── TNumberOfStatements.ql │ │ │ │ ├── TPercentageOfComments.qhelp │ │ │ │ ├── TPercentageOfComments.ql │ │ │ │ ├── TPercentageOfComplexCode.qhelp │ │ │ │ ├── TPercentageOfComplexCode.ql │ │ │ │ ├── TResponse.qhelp │ │ │ │ ├── TResponse.ql │ │ │ │ ├── TSelfContainedness.qhelp │ │ │ │ ├── TSelfContainedness.ql │ │ │ │ ├── TSizeOfAPI.qhelp │ │ │ │ ├── TSizeOfAPI.ql │ │ │ │ ├── TSpecialisationIndex.java │ │ │ │ ├── TSpecialisationIndex.qhelp │ │ │ │ ├── TSpecialisationIndex.ql │ │ │ │ └── TSpecialisationIndexGood.java │ │ ├── Performance │ │ │ ├── ConcatenationInLoops.java │ │ │ ├── ConcatenationInLoops.qhelp │ │ │ ├── ConcatenationInLoops.ql │ │ │ ├── InefficientEmptyStringTest.java │ │ │ ├── InefficientEmptyStringTest.qhelp │ │ │ ├── InefficientEmptyStringTest.ql │ │ │ ├── InefficientKeySetIterator.java │ │ │ ├── InefficientKeySetIterator.qhelp │ │ │ ├── InefficientKeySetIterator.ql │ │ │ ├── InefficientOutputStream.qhelp │ │ │ ├── InefficientOutputStream.ql │ │ │ ├── InefficientOutputStreamBad.java │ │ │ ├── InefficientOutputStreamGood.java │ │ │ ├── InefficientPrimConstructor.java │ │ │ ├── InefficientPrimConstructor.qhelp │ │ │ ├── InefficientPrimConstructor.ql │ │ │ ├── InnerClassCouldBeStatic.qhelp │ │ │ ├── InnerClassCouldBeStatic.ql │ │ │ ├── NewStringString.java │ │ │ ├── NewStringString.qhelp │ │ │ └── NewStringString.ql │ │ ├── Security │ │ │ └── CWE │ │ │ │ ├── CWE-020 │ │ │ │ ├── ExternalAPISinkExample.java │ │ │ │ ├── ExternalAPITaintStepExample.java │ │ │ │ ├── ExternalAPIsUsedWithUntrustedData.qhelp │ │ │ │ ├── ExternalAPIsUsedWithUntrustedData.ql │ │ │ │ ├── UntrustedDataToExternalAPI.qhelp │ │ │ │ └── UntrustedDataToExternalAPI.ql │ │ │ │ ├── CWE-022 │ │ │ │ ├── TaintedPath.java │ │ │ │ ├── TaintedPath.qhelp │ │ │ │ ├── TaintedPath.ql │ │ │ │ ├── TaintedPathCommon.qll │ │ │ │ ├── TaintedPathLocal.qhelp │ │ │ │ ├── TaintedPathLocal.ql │ │ │ │ ├── ZipSlip.qhelp │ │ │ │ ├── ZipSlip.ql │ │ │ │ ├── ZipSlipBad.java │ │ │ │ └── ZipSlipGood.java │ │ │ │ ├── CWE-078 │ │ │ │ ├── ExecCommon.qll │ │ │ │ ├── ExecRelative.java │ │ │ │ ├── ExecRelative.qhelp │ │ │ │ ├── ExecRelative.ql │ │ │ │ ├── ExecTainted.java │ │ │ │ ├── ExecTainted.qhelp │ │ │ │ ├── ExecTainted.ql │ │ │ │ ├── ExecTaintedLocal.qhelp │ │ │ │ ├── ExecTaintedLocal.ql │ │ │ │ ├── ExecUnescaped.java │ │ │ │ ├── ExecUnescaped.qhelp │ │ │ │ └── ExecUnescaped.ql │ │ │ │ ├── CWE-079 │ │ │ │ ├── XSS.java │ │ │ │ ├── XSS.qhelp │ │ │ │ ├── XSS.ql │ │ │ │ ├── XSSLocal.qhelp │ │ │ │ └── XSSLocal.ql │ │ │ │ ├── CWE-089 │ │ │ │ ├── HowToAddress.inc.qhelp │ │ │ │ ├── SqlInjectionLib.qll │ │ │ │ ├── SqlTainted.java │ │ │ │ ├── SqlTainted.qhelp │ │ │ │ ├── SqlTainted.ql │ │ │ │ ├── SqlTaintedLocal.qhelp │ │ │ │ ├── SqlTaintedLocal.ql │ │ │ │ ├── SqlTaintedPersistence.java │ │ │ │ ├── SqlUnescaped.java │ │ │ │ ├── SqlUnescaped.qhelp │ │ │ │ └── SqlUnescaped.ql │ │ │ │ ├── CWE-090 │ │ │ │ ├── LdapInjection.qhelp │ │ │ │ ├── LdapInjection.ql │ │ │ │ ├── LdapInjectionApache.java │ │ │ │ ├── LdapInjectionJndi.java │ │ │ │ ├── LdapInjectionLib.qll │ │ │ │ ├── LdapInjectionSpring.java │ │ │ │ └── LdapInjectionUnboundId.java │ │ │ │ ├── CWE-094 │ │ │ │ ├── InsecureBeanValidation.java │ │ │ │ ├── InsecureBeanValidation.qhelp │ │ │ │ └── InsecureBeanValidation.ql │ │ │ │ ├── CWE-1104 │ │ │ │ ├── MavenPomDependsOnBintray.qhelp │ │ │ │ ├── MavenPomDependsOnBintray.ql │ │ │ │ └── bad-bintray-pom.xml │ │ │ │ ├── CWE-113 │ │ │ │ ├── NettyResponseSplitting.java │ │ │ │ ├── NettyResponseSplitting.qhelp │ │ │ │ ├── NettyResponseSplitting.ql │ │ │ │ ├── ResponseSplitting.java │ │ │ │ ├── ResponseSplitting.qhelp │ │ │ │ ├── ResponseSplitting.ql │ │ │ │ ├── ResponseSplittingLocal.qhelp │ │ │ │ └── ResponseSplittingLocal.ql │ │ │ │ ├── CWE-129 │ │ │ │ ├── ArraySizing.qll │ │ │ │ ├── BoundingChecks.qll │ │ │ │ ├── ImproperValidationOfArrayConstruction.java │ │ │ │ ├── ImproperValidationOfArrayConstruction.qhelp │ │ │ │ ├── ImproperValidationOfArrayConstruction.ql │ │ │ │ ├── ImproperValidationOfArrayConstructionCodeSpecified.java │ │ │ │ ├── ImproperValidationOfArrayConstructionCodeSpecified.qhelp │ │ │ │ ├── ImproperValidationOfArrayConstructionCodeSpecified.ql │ │ │ │ ├── ImproperValidationOfArrayConstructionLocal.qhelp │ │ │ │ ├── ImproperValidationOfArrayConstructionLocal.ql │ │ │ │ ├── ImproperValidationOfArrayIndex.java │ │ │ │ ├── ImproperValidationOfArrayIndex.qhelp │ │ │ │ ├── ImproperValidationOfArrayIndex.ql │ │ │ │ ├── ImproperValidationOfArrayIndexCodeSpecified.java │ │ │ │ ├── ImproperValidationOfArrayIndexCodeSpecified.qhelp │ │ │ │ ├── ImproperValidationOfArrayIndexCodeSpecified.ql │ │ │ │ ├── ImproperValidationOfArrayIndexLocal.qhelp │ │ │ │ └── ImproperValidationOfArrayIndexLocal.ql │ │ │ │ ├── CWE-134 │ │ │ │ ├── ExternallyControlledFormatString.java │ │ │ │ ├── ExternallyControlledFormatString.qhelp │ │ │ │ ├── ExternallyControlledFormatString.ql │ │ │ │ ├── ExternallyControlledFormatStringLocal.qhelp │ │ │ │ └── ExternallyControlledFormatStringLocal.ql │ │ │ │ ├── CWE-190 │ │ │ │ ├── ArithmeticCommon.qll │ │ │ │ ├── ArithmeticTainted.java │ │ │ │ ├── ArithmeticTainted.qhelp │ │ │ │ ├── ArithmeticTainted.ql │ │ │ │ ├── ArithmeticTaintedLocal.qhelp │ │ │ │ ├── ArithmeticTaintedLocal.ql │ │ │ │ ├── ArithmeticUncontrolled.java │ │ │ │ ├── ArithmeticUncontrolled.qhelp │ │ │ │ ├── ArithmeticUncontrolled.ql │ │ │ │ ├── ArithmeticWithExtremeValues.java │ │ │ │ ├── ArithmeticWithExtremeValues.qhelp │ │ │ │ ├── ArithmeticWithExtremeValues.ql │ │ │ │ ├── ComparisonWithWiderType.java │ │ │ │ ├── ComparisonWithWiderType.qhelp │ │ │ │ └── ComparisonWithWiderType.ql │ │ │ │ ├── CWE-209 │ │ │ │ ├── StackTraceExposure.java │ │ │ │ ├── StackTraceExposure.qhelp │ │ │ │ └── StackTraceExposure.ql │ │ │ │ ├── CWE-297 │ │ │ │ ├── UnsafeHostnameVerification.java │ │ │ │ ├── UnsafeHostnameVerification.qhelp │ │ │ │ └── UnsafeHostnameVerification.ql │ │ │ │ ├── CWE-312 │ │ │ │ ├── CleartextStorage.inc.qhelp │ │ │ │ ├── CleartextStorage.java │ │ │ │ ├── CleartextStorageClass.qhelp │ │ │ │ ├── CleartextStorageClass.ql │ │ │ │ ├── CleartextStorageCookie.qhelp │ │ │ │ ├── CleartextStorageCookie.ql │ │ │ │ ├── CleartextStorageProperties.qhelp │ │ │ │ ├── CleartextStorageProperties.ql │ │ │ │ └── SensitiveStorage.qll │ │ │ │ ├── CWE-319 │ │ │ │ ├── HttpsUrls.java │ │ │ │ ├── HttpsUrls.qhelp │ │ │ │ ├── HttpsUrls.ql │ │ │ │ ├── UseSSL.java │ │ │ │ ├── UseSSL.qhelp │ │ │ │ ├── UseSSL.ql │ │ │ │ ├── UseSSLSocketFactories.java │ │ │ │ ├── UseSSLSocketFactories.qhelp │ │ │ │ └── UseSSLSocketFactories.ql │ │ │ │ ├── CWE-327 │ │ │ │ ├── BrokenCryptoAlgorithm.java │ │ │ │ ├── BrokenCryptoAlgorithm.qhelp │ │ │ │ ├── BrokenCryptoAlgorithm.ql │ │ │ │ ├── MaybeBrokenCryptoAlgorithm.qhelp │ │ │ │ └── MaybeBrokenCryptoAlgorithm.ql │ │ │ │ ├── CWE-335 │ │ │ │ ├── PredictableSeed.java │ │ │ │ ├── PredictableSeed.qhelp │ │ │ │ └── PredictableSeed.ql │ │ │ │ ├── CWE-338 │ │ │ │ ├── JHipsterGeneratedPRNG.qhelp │ │ │ │ ├── JHipsterGeneratedPRNG.ql │ │ │ │ ├── JHipsterGeneratedPRNGFixed.java │ │ │ │ └── JHipsterGeneratedPRNGVulnerable.java │ │ │ │ ├── CWE-352 │ │ │ │ ├── SpringCSRFProtection.java │ │ │ │ ├── SpringCSRFProtection.qhelp │ │ │ │ └── SpringCSRFProtection.ql │ │ │ │ ├── CWE-367 │ │ │ │ ├── TOCTOURace.java │ │ │ │ ├── TOCTOURace.qhelp │ │ │ │ └── TOCTOURace.ql │ │ │ │ ├── CWE-421 │ │ │ │ ├── SocketAuthRace.java │ │ │ │ ├── SocketAuthRace.qhelp │ │ │ │ └── SocketAuthRace.ql │ │ │ │ ├── CWE-502 │ │ │ │ ├── UnsafeDeserialization.qhelp │ │ │ │ ├── UnsafeDeserialization.ql │ │ │ │ ├── UnsafeDeserializationBad.java │ │ │ │ └── UnsafeDeserializationGood.java │ │ │ │ ├── CWE-601 │ │ │ │ ├── UrlRedirect.java │ │ │ │ ├── UrlRedirect.qhelp │ │ │ │ ├── UrlRedirect.ql │ │ │ │ ├── UrlRedirectLocal.qhelp │ │ │ │ └── UrlRedirectLocal.ql │ │ │ │ ├── CWE-611 │ │ │ │ ├── XXE.qhelp │ │ │ │ ├── XXE.ql │ │ │ │ ├── XXEBad.java │ │ │ │ └── XXEGood.java │ │ │ │ ├── CWE-614 │ │ │ │ ├── InsecureCookie.java │ │ │ │ ├── InsecureCookie.qhelp │ │ │ │ └── InsecureCookie.ql │ │ │ │ ├── CWE-676 │ │ │ │ ├── PotentiallyDangerousFunction.java │ │ │ │ ├── PotentiallyDangerousFunction.qhelp │ │ │ │ └── PotentiallyDangerousFunction.ql │ │ │ │ ├── CWE-681 │ │ │ │ ├── NumericCastCommon.qll │ │ │ │ ├── NumericCastTainted.java │ │ │ │ ├── NumericCastTainted.qhelp │ │ │ │ ├── NumericCastTainted.ql │ │ │ │ ├── NumericCastTaintedLocal.qhelp │ │ │ │ └── NumericCastTaintedLocal.ql │ │ │ │ ├── CWE-732 │ │ │ │ ├── ReadingFromWorldWritableFile.qhelp │ │ │ │ └── ReadingFromWorldWritableFile.ql │ │ │ │ ├── CWE-798 │ │ │ │ ├── HardcodedAWSCredentials.java │ │ │ │ ├── HardcodedCredentials.qll │ │ │ │ ├── HardcodedCredentialsApiCall.java │ │ │ │ ├── HardcodedCredentialsApiCall.qhelp │ │ │ │ ├── HardcodedCredentialsApiCall.ql │ │ │ │ ├── HardcodedCredentialsComparison.qhelp │ │ │ │ ├── HardcodedCredentialsComparison.ql │ │ │ │ ├── HardcodedCredentialsSourceCall.qhelp │ │ │ │ ├── HardcodedCredentialsSourceCall.ql │ │ │ │ ├── HardcodedPasswordField.qhelp │ │ │ │ ├── HardcodedPasswordField.ql │ │ │ │ └── SensitiveApi.qll │ │ │ │ ├── CWE-807 │ │ │ │ ├── ConditionalBypass.java │ │ │ │ ├── ConditionalBypass.qhelp │ │ │ │ ├── ConditionalBypass.ql │ │ │ │ ├── TaintedPermissionsCheck.java │ │ │ │ ├── TaintedPermissionsCheck.qhelp │ │ │ │ └── TaintedPermissionsCheck.ql │ │ │ │ ├── CWE-829 │ │ │ │ ├── InsecureDependencyResolution.qhelp │ │ │ │ ├── InsecureDependencyResolution.ql │ │ │ │ ├── insecure-pom.xml │ │ │ │ └── secure-pom.xml │ │ │ │ ├── CWE-833 │ │ │ │ ├── LockOrderInconsistency.java │ │ │ │ ├── LockOrderInconsistency.qhelp │ │ │ │ └── LockOrderInconsistency.ql │ │ │ │ └── CWE-835 │ │ │ │ ├── InfiniteLoop.qhelp │ │ │ │ ├── InfiniteLoop.ql │ │ │ │ ├── InfiniteLoopBad.java │ │ │ │ └── InfiniteLoopGood.java │ │ ├── Violations of Best Practice │ │ │ ├── Boolean Logic │ │ │ │ ├── SimplifyBoolExpr.java │ │ │ │ ├── SimplifyBoolExpr.qhelp │ │ │ │ └── SimplifyBoolExpr.ql │ │ │ ├── Boxed Types │ │ │ │ ├── BoxedVariable.qhelp │ │ │ │ ├── BoxedVariable.ql │ │ │ │ ├── BoxedVariableBad.java │ │ │ │ └── BoxedVariableGood.java │ │ │ ├── Comments │ │ │ │ ├── CommentedCode.qhelp │ │ │ │ ├── CommentedCode.ql │ │ │ │ ├── CommentedCode.qll │ │ │ │ ├── CommentedOutCodeQuery.inc.qhelp │ │ │ │ ├── TodoComments.qhelp │ │ │ │ └── TodoComments.ql │ │ │ ├── Dead Code │ │ │ │ ├── AssignmentInReturn.java │ │ │ │ ├── AssignmentInReturn.qhelp │ │ │ │ ├── AssignmentInReturn.ql │ │ │ │ ├── CreatesEmptyZip.java │ │ │ │ ├── CreatesEmptyZip.qhelp │ │ │ │ ├── CreatesEmptyZip.ql │ │ │ │ ├── DeadLocals.qll │ │ │ │ ├── DeadRefTypes.qhelp │ │ │ │ ├── DeadRefTypes.ql │ │ │ │ ├── DeadStoreOfLocal.java │ │ │ │ ├── DeadStoreOfLocal.qhelp │ │ │ │ ├── DeadStoreOfLocal.ql │ │ │ │ ├── DeadStoreOfLocalUnread.qhelp │ │ │ │ ├── DeadStoreOfLocalUnread.ql │ │ │ │ ├── EmptyFinalize.java │ │ │ │ ├── EmptyFinalize.qhelp │ │ │ │ ├── EmptyFinalize.ql │ │ │ │ ├── FinalizerNullsFields.java │ │ │ │ ├── FinalizerNullsFields.qhelp │ │ │ │ ├── FinalizerNullsFields.ql │ │ │ │ ├── InterfaceCannotBeImplemented.java │ │ │ │ ├── InterfaceCannotBeImplemented.qhelp │ │ │ │ ├── InterfaceCannotBeImplemented.ql │ │ │ │ ├── LocalInitialisedButNotUsed.qhelp │ │ │ │ ├── LocalInitialisedButNotUsed.ql │ │ │ │ ├── LocalNotRead.qhelp │ │ │ │ ├── LocalNotRead.ql │ │ │ │ ├── NonAssignedFields.java │ │ │ │ ├── NonAssignedFields.qhelp │ │ │ │ ├── NonAssignedFields.ql │ │ │ │ ├── PointlessForwardingMethod.java │ │ │ │ ├── PointlessForwardingMethod.qhelp │ │ │ │ ├── PointlessForwardingMethod.ql │ │ │ │ ├── UnreadLocal.java │ │ │ │ ├── UnreadLocal.qhelp │ │ │ │ ├── UnreadLocal.ql │ │ │ │ ├── UnusedField.qhelp │ │ │ │ ├── UnusedField.ql │ │ │ │ ├── UnusedLabel.java │ │ │ │ ├── UnusedLabel.qhelp │ │ │ │ ├── UnusedLabel.ql │ │ │ │ ├── UnusedLocal.qhelp │ │ │ │ └── UnusedLocal.ql │ │ │ ├── Declarations │ │ │ │ ├── BreakInSwitchCase.java │ │ │ │ ├── BreakInSwitchCase.qhelp │ │ │ │ ├── BreakInSwitchCase.ql │ │ │ │ ├── Common.qll │ │ │ │ ├── MakeImportsExplicit.java │ │ │ │ ├── MakeImportsExplicit.qhelp │ │ │ │ ├── MakeImportsExplicit.ql │ │ │ │ ├── NoConstantsOnly.java │ │ │ │ ├── NoConstantsOnly.qhelp │ │ │ │ └── NoConstantsOnly.ql │ │ │ ├── Exception Handling │ │ │ │ ├── DroppedExceptions-comment.java │ │ │ │ ├── DroppedExceptions-good.java │ │ │ │ ├── DroppedExceptions-ignore.java │ │ │ │ ├── DroppedExceptions.java │ │ │ │ ├── DroppedExceptions.qhelp │ │ │ │ ├── DroppedExceptions.ql │ │ │ │ ├── ExceptionCatch.java │ │ │ │ ├── ExceptionCatch.qhelp │ │ │ │ ├── ExceptionCatch.ql │ │ │ │ ├── IgnoreExceptionalReturn.java │ │ │ │ ├── IgnoreExceptionalReturn.qhelp │ │ │ │ ├── IgnoreExceptionalReturn.ql │ │ │ │ ├── NumberFormatException.java │ │ │ │ ├── NumberFormatException.qhelp │ │ │ │ └── NumberFormatException.ql │ │ │ ├── Implementation Hiding │ │ │ │ ├── AbstractToConcreteCollection.java │ │ │ │ ├── AbstractToConcreteCollection.qhelp │ │ │ │ ├── AbstractToConcreteCollection.ql │ │ │ │ ├── ExposeRepresentation.java │ │ │ │ ├── ExposeRepresentation.qhelp │ │ │ │ ├── ExposeRepresentation.ql │ │ │ │ ├── GetClassGetResource.java │ │ │ │ ├── GetClassGetResource.qhelp │ │ │ │ ├── GetClassGetResource.ql │ │ │ │ ├── GetClassGetResourceGood.java │ │ │ │ ├── StaticArray.java │ │ │ │ ├── StaticArray.qhelp │ │ │ │ ├── StaticArray.ql │ │ │ │ └── StaticArrayGood.java │ │ │ ├── Magic Constants │ │ │ │ ├── MagicConstants.qll │ │ │ │ ├── MagicConstantsNumbers.java │ │ │ │ ├── MagicConstantsNumbers.qhelp │ │ │ │ ├── MagicConstantsNumbers.ql │ │ │ │ ├── MagicConstantsString.java │ │ │ │ ├── MagicConstantsString.qhelp │ │ │ │ ├── MagicConstantsString.ql │ │ │ │ ├── MagicNumbersUseConstant.java │ │ │ │ ├── MagicNumbersUseConstant.qhelp │ │ │ │ ├── MagicNumbersUseConstant.ql │ │ │ │ ├── MagicStringsUseConstant.java │ │ │ │ ├── MagicStringsUseConstant.qhelp │ │ │ │ └── MagicStringsUseConstant.ql │ │ │ ├── Naming Conventions │ │ │ │ ├── AmbiguousOuterSuper.java │ │ │ │ ├── AmbiguousOuterSuper.qhelp │ │ │ │ ├── AmbiguousOuterSuper.ql │ │ │ │ ├── ConfusingMethodNames.java │ │ │ │ ├── ConfusingMethodNames.qhelp │ │ │ │ ├── ConfusingMethodNames.ql │ │ │ │ ├── ConfusingOverloading.qhelp │ │ │ │ ├── ConfusingOverloading.ql │ │ │ │ ├── ConfusingOverridesNames.java │ │ │ │ ├── ConfusingOverridesNames.qhelp │ │ │ │ ├── ConfusingOverridesNames.ql │ │ │ │ ├── FieldMasksSuperField.java │ │ │ │ ├── FieldMasksSuperField.qhelp │ │ │ │ ├── FieldMasksSuperField.ql │ │ │ │ ├── LocalShadowsField.qhelp │ │ │ │ ├── LocalShadowsField.ql │ │ │ │ ├── LocalShadowsFieldConfusing.java │ │ │ │ ├── LocalShadowsFieldConfusing.qhelp │ │ │ │ ├── LocalShadowsFieldConfusing.ql │ │ │ │ ├── SameNameAsSuper.java │ │ │ │ ├── SameNameAsSuper.qhelp │ │ │ │ ├── SameNameAsSuper.ql │ │ │ │ └── Shadowing.qll │ │ │ ├── Undesirable Calls │ │ │ │ ├── CallsToRunFinalizersOnExit.java │ │ │ │ ├── CallsToRunFinalizersOnExit.qhelp │ │ │ │ ├── CallsToRunFinalizersOnExit.ql │ │ │ │ ├── CallsToRunFinalizersOnExitGood.java │ │ │ │ ├── CallsToStringToString.java │ │ │ │ ├── CallsToStringToString.qhelp │ │ │ │ ├── CallsToStringToString.ql │ │ │ │ ├── CallsToSystemExit.java │ │ │ │ ├── CallsToSystemExit.qhelp │ │ │ │ ├── CallsToSystemExit.ql │ │ │ │ ├── DefaultToString.java │ │ │ │ ├── DefaultToString.qhelp │ │ │ │ ├── DefaultToString.ql │ │ │ │ ├── DefaultToStringGood.java │ │ │ │ ├── GarbageCollection.java │ │ │ │ ├── GarbageCollection.qhelp │ │ │ │ ├── GarbageCollection.ql │ │ │ │ ├── NextFromIterator.java │ │ │ │ ├── NextFromIterator.qhelp │ │ │ │ ├── NextFromIterator.ql │ │ │ │ ├── PrintLnArray.java │ │ │ │ ├── PrintLnArray.qhelp │ │ │ │ └── PrintLnArray.ql │ │ │ └── legacy │ │ │ │ ├── AutoBoxing.java │ │ │ │ ├── AutoBoxing.qhelp │ │ │ │ ├── AutoBoxing.ql │ │ │ │ ├── FinallyMayNotComplete.qhelp │ │ │ │ ├── FinallyMayNotComplete.ql │ │ │ │ ├── InexactVarArg.java │ │ │ │ ├── InexactVarArg.qhelp │ │ │ │ ├── InexactVarArg.ql │ │ │ │ ├── ParameterAssignment.java │ │ │ │ ├── ParameterAssignment.qhelp │ │ │ │ ├── ParameterAssignment.ql │ │ │ │ ├── UnnecessaryCast.java │ │ │ │ ├── UnnecessaryCast.qhelp │ │ │ │ ├── UnnecessaryCast.ql │ │ │ │ ├── UnnecessaryImport.qhelp │ │ │ │ └── UnnecessaryImport.ql │ │ ├── codeql-suites │ │ │ ├── java-code-scanning.qls │ │ │ ├── java-lgtm-full.qls │ │ │ ├── java-lgtm.qls │ │ │ ├── java-security-and-quality.qls │ │ │ └── java-security-extended.qls │ │ ├── config │ │ │ ├── semmlecode.dbscheme │ │ │ └── semmlecode.dbscheme.stats │ │ ├── default.qll │ │ ├── definitions.ql │ │ ├── definitions.qll │ │ ├── experimental │ │ │ ├── README.md │ │ │ ├── Security │ │ │ │ └── CWE │ │ │ │ │ ├── CWE-016 │ │ │ │ │ ├── SpringBootActuators.java │ │ │ │ │ ├── SpringBootActuators.qhelp │ │ │ │ │ ├── SpringBootActuators.ql │ │ │ │ │ └── SpringBootActuators.qll │ │ │ │ │ ├── CWE-036 │ │ │ │ │ ├── OpenStream.java │ │ │ │ │ ├── OpenStream.qhelp │ │ │ │ │ └── OpenStream.ql │ │ │ │ │ ├── CWE-074 │ │ │ │ │ ├── JndiInjection.java │ │ │ │ │ ├── JndiInjection.qhelp │ │ │ │ │ ├── JndiInjection.ql │ │ │ │ │ ├── JndiInjectionLib.qll │ │ │ │ │ ├── XsltInjection.java │ │ │ │ │ ├── XsltInjection.qhelp │ │ │ │ │ ├── XsltInjection.ql │ │ │ │ │ └── XsltInjectionLib.qll │ │ │ │ │ ├── CWE-094 │ │ │ │ │ ├── JexlInjection.qhelp │ │ │ │ │ ├── JexlInjection.ql │ │ │ │ │ ├── JexlInjectionLib.qll │ │ │ │ │ ├── MvelInjection.qhelp │ │ │ │ │ ├── MvelInjection.ql │ │ │ │ │ ├── MvelInjectionLib.qll │ │ │ │ │ ├── NashornScriptEngine.java │ │ │ │ │ ├── SaferJexlExpressionEvaluationWithSandbox.java │ │ │ │ │ ├── SaferJexlExpressionEvaluationWithUberspectSandbox.java │ │ │ │ │ ├── SaferSpelExpressionEvaluation.java │ │ │ │ │ ├── ScriptEngine.java │ │ │ │ │ ├── ScriptEngine.qhelp │ │ │ │ │ ├── ScriptEngine.ql │ │ │ │ │ ├── SpelInjection.qhelp │ │ │ │ │ ├── SpelInjection.ql │ │ │ │ │ ├── SpelInjectionLib.qll │ │ │ │ │ ├── SpringFrameworkLib.qll │ │ │ │ │ ├── SpringImplicitViewManipulation.qhelp │ │ │ │ │ ├── SpringImplicitViewManipulation.ql │ │ │ │ │ ├── SpringViewBad.java │ │ │ │ │ ├── SpringViewGood.java │ │ │ │ │ ├── SpringViewManipulation.qhelp │ │ │ │ │ ├── SpringViewManipulation.ql │ │ │ │ │ ├── SpringViewManipulationLib.qll │ │ │ │ │ ├── UnsafeJexlExpressionEvaluation.java │ │ │ │ │ ├── UnsafeMvelExpressionEvaluation.java │ │ │ │ │ └── UnsafeSpelExpressionEvaluation.java │ │ │ │ │ ├── CWE-1004 │ │ │ │ │ ├── InsecureTomcatConfig.qhelp │ │ │ │ │ ├── InsecureTomcatConfig.ql │ │ │ │ │ └── insecure-web.xml │ │ │ │ │ ├── CWE-117 │ │ │ │ │ ├── LogInjection.qhelp │ │ │ │ │ ├── LogInjection.ql │ │ │ │ │ ├── LogInjectionBad.java │ │ │ │ │ └── LogInjectionGood.java │ │ │ │ │ ├── CWE-273 │ │ │ │ │ ├── UnsafeCertTrust.java │ │ │ │ │ ├── UnsafeCertTrust.qhelp │ │ │ │ │ └── UnsafeCertTrust.ql │ │ │ │ │ ├── CWE-295 │ │ │ │ │ ├── JxBrowserWithoutCertValidation.java │ │ │ │ │ ├── JxBrowserWithoutCertValidation.qhelp │ │ │ │ │ └── JxBrowserWithoutCertValidation.ql │ │ │ │ │ ├── CWE-297 │ │ │ │ │ ├── InsecureJavaMail.qhelp │ │ │ │ │ ├── InsecureJavaMail.ql │ │ │ │ │ ├── InsecureLdapEndpoint.java │ │ │ │ │ ├── InsecureLdapEndpoint.qhelp │ │ │ │ │ ├── InsecureLdapEndpoint.ql │ │ │ │ │ ├── InsecureLdapEndpoint2.java │ │ │ │ │ ├── JavaMail.java │ │ │ │ │ └── SimpleMail.java │ │ │ │ │ ├── CWE-299 │ │ │ │ │ ├── CustomRevocationChecking.java │ │ │ │ │ ├── DefaultRevocationChecking.java │ │ │ │ │ ├── DisabledRevocationChecking.qhelp │ │ │ │ │ ├── DisabledRevocationChecking.ql │ │ │ │ │ ├── NoRevocationChecking.java │ │ │ │ │ └── RevocationCheckingLib.qll │ │ │ │ │ ├── CWE-312 │ │ │ │ │ ├── CleartextStorageSharedPrefs.java │ │ │ │ │ ├── CleartextStorageSharedPrefs.qhelp │ │ │ │ │ └── CleartextStorageSharedPrefs.ql │ │ │ │ │ ├── CWE-326 │ │ │ │ │ ├── InsufficientKeySize.java │ │ │ │ │ ├── InsufficientKeySize.qhelp │ │ │ │ │ └── InsufficientKeySize.ql │ │ │ │ │ ├── CWE-327 │ │ │ │ │ ├── SaferTLSVersion.java │ │ │ │ │ ├── SslLib.qll │ │ │ │ │ ├── UnsafeTLSVersion.java │ │ │ │ │ ├── UnsafeTlsVersion.qhelp │ │ │ │ │ └── UnsafeTlsVersion.ql │ │ │ │ │ ├── CWE-346 │ │ │ │ │ ├── UnvalidatedCors.java │ │ │ │ │ ├── UnvalidatedCors.qhelp │ │ │ │ │ └── UnvalidatedCors.ql │ │ │ │ │ ├── CWE-489 │ │ │ │ │ ├── EJBMain.java │ │ │ │ │ ├── EJBMain.qhelp │ │ │ │ │ ├── EJBMain.ql │ │ │ │ │ ├── StrutsBad.xml │ │ │ │ │ ├── StrutsGood.xml │ │ │ │ │ ├── TestLib.qll │ │ │ │ │ ├── WebComponentMain.java │ │ │ │ │ ├── WebComponentMain.qhelp │ │ │ │ │ ├── WebComponentMain.ql │ │ │ │ │ ├── devMode.qhelp │ │ │ │ │ └── devMode.ql │ │ │ │ │ ├── CWE-502 │ │ │ │ │ ├── SpringExporterUnsafeDeserialization.java │ │ │ │ │ ├── SpringExporterUnsafeDeserialization.xml │ │ │ │ │ ├── UnsafeSpringExporterInConfigurationClass.qhelp │ │ │ │ │ ├── UnsafeSpringExporterInConfigurationClass.ql │ │ │ │ │ ├── UnsafeSpringExporterInConfigurationClassExample.inc.qhelp │ │ │ │ │ ├── UnsafeSpringExporterInXMLConfiguration.qhelp │ │ │ │ │ ├── UnsafeSpringExporterInXMLConfiguration.ql │ │ │ │ │ ├── UnsafeSpringExporterInXMLConfigurationExample.inc.qhelp │ │ │ │ │ ├── UnsafeSpringExporterLib.qll │ │ │ │ │ ├── UnsafeSpringExporterQuery.inc.qhelp │ │ │ │ │ └── UnsafeSpringExporterReferences.inc.qhelp │ │ │ │ │ ├── CWE-522 │ │ │ │ │ ├── InsecureBasicAuth.java │ │ │ │ │ ├── InsecureBasicAuth.qhelp │ │ │ │ │ ├── InsecureBasicAuth.ql │ │ │ │ │ ├── InsecureLdapAuth.java │ │ │ │ │ ├── InsecureLdapAuth.qhelp │ │ │ │ │ └── InsecureLdapAuth.ql │ │ │ │ │ ├── CWE-532 │ │ │ │ │ ├── SensitiveInfoLog.java │ │ │ │ │ ├── SensitiveInfoLog.qhelp │ │ │ │ │ └── SensitiveInfoLog.ql │ │ │ │ │ ├── CWE-548 │ │ │ │ │ ├── InsecureDirectoryConfig.qhelp │ │ │ │ │ ├── InsecureDirectoryConfig.ql │ │ │ │ │ └── web.xml │ │ │ │ │ ├── CWE-555 │ │ │ │ │ ├── PasswordInConfigurationFile.qhelp │ │ │ │ │ ├── PasswordInConfigurationFile.ql │ │ │ │ │ └── context.xml │ │ │ │ │ ├── CWE-598 │ │ │ │ │ ├── SensitiveGetQuery.java │ │ │ │ │ ├── SensitiveGetQuery.qhelp │ │ │ │ │ └── SensitiveGetQuery.ql │ │ │ │ │ ├── CWE-600 │ │ │ │ │ ├── UncaughtServletException.java │ │ │ │ │ ├── UncaughtServletException.qhelp │ │ │ │ │ └── UncaughtServletException.ql │ │ │ │ │ ├── CWE-643 │ │ │ │ │ ├── XPathInjection.java │ │ │ │ │ ├── XPathInjection.qhelp │ │ │ │ │ └── XPathInjection.ql │ │ │ │ │ ├── CWE-652 │ │ │ │ │ ├── XQueryInjection.java │ │ │ │ │ ├── XQueryInjection.qhelp │ │ │ │ │ ├── XQueryInjection.ql │ │ │ │ │ └── XQueryInjectionLib.qll │ │ │ │ │ ├── CWE-749 │ │ │ │ │ ├── UnsafeAndroidAccess.java │ │ │ │ │ ├── UnsafeAndroidAccess.qhelp │ │ │ │ │ └── UnsafeAndroidAccess.ql │ │ │ │ │ ├── CWE-755 │ │ │ │ │ ├── NFEAndroidDoS.java │ │ │ │ │ ├── NFEAndroidDoS.qhelp │ │ │ │ │ └── NFEAndroidDoS.ql │ │ │ │ │ ├── CWE-759 │ │ │ │ │ ├── HashWithoutSalt.java │ │ │ │ │ ├── HashWithoutSalt.qhelp │ │ │ │ │ └── HashWithoutSalt.ql │ │ │ │ │ ├── CWE-917 │ │ │ │ │ ├── OgnlInjection.java │ │ │ │ │ ├── OgnlInjection.qhelp │ │ │ │ │ ├── OgnlInjection.ql │ │ │ │ │ └── OgnlInjectionLib.qll │ │ │ │ │ ├── CWE-918 │ │ │ │ │ ├── RequestForgery.java │ │ │ │ │ ├── RequestForgery.qhelp │ │ │ │ │ ├── RequestForgery.ql │ │ │ │ │ └── RequestForgery.qll │ │ │ │ │ ├── CWE-927 │ │ │ │ │ ├── SensitiveBroadcast.java │ │ │ │ │ ├── SensitiveBroadcast.qhelp │ │ │ │ │ └── SensitiveBroadcast.ql │ │ │ │ │ └── CWE-939 │ │ │ │ │ ├── IncorrectURLVerification.java │ │ │ │ │ ├── IncorrectURLVerification.qhelp │ │ │ │ │ └── IncorrectURLVerification.ql │ │ │ └── semmle │ │ │ │ └── code │ │ │ │ ├── java │ │ │ │ ├── Logging.qll │ │ │ │ └── frameworks │ │ │ │ │ ├── Jndi.qll │ │ │ │ │ ├── Shiro.qll │ │ │ │ │ └── spring │ │ │ │ │ └── SpringJndi.qll │ │ │ │ └── xml │ │ │ │ └── StrutsXML.qll │ │ ├── external │ │ │ ├── Clover.qll │ │ │ ├── DuplicateAnonymous.java │ │ │ ├── DuplicateAnonymous.qhelp │ │ │ ├── DuplicateAnonymous.ql │ │ │ ├── DuplicateBlock.ql │ │ │ ├── DuplicateMethod.java │ │ │ ├── DuplicateMethod.qhelp │ │ │ ├── DuplicateMethod.ql │ │ │ ├── ExternalArtifact.qll │ │ │ ├── MostlyDuplicateClass.qhelp │ │ │ ├── MostlyDuplicateClass.ql │ │ │ ├── MostlyDuplicateFile.qhelp │ │ │ ├── MostlyDuplicateFile.ql │ │ │ ├── MostlyDuplicateMethod.qhelp │ │ │ ├── MostlyDuplicateMethod.ql │ │ │ ├── MostlySimilarFile.qhelp │ │ │ └── MostlySimilarFile.ql │ │ ├── filters │ │ │ └── ClassifyFiles.ql │ │ ├── java.qll │ │ ├── localDefinitions.ql │ │ ├── localReferences.ql │ │ ├── meta │ │ │ ├── frameworks │ │ │ │ └── Coverage.ql │ │ │ └── ssa │ │ │ │ ├── AmbiguousToString.ql │ │ │ │ ├── TooFewPhiInputs.ql │ │ │ │ ├── UncertainDefWithoutPrior.ql │ │ │ │ └── UseWithoutUniqueSsaVariable.ql │ │ ├── printAst.ql │ │ ├── qlpack.yml │ │ ├── queries.xml │ │ └── semmle │ │ │ ├── code │ │ │ ├── FileSystem.qll │ │ │ ├── Location.qll │ │ │ ├── SMAP.qll │ │ │ ├── Unit.qll │ │ │ ├── configfiles │ │ │ │ └── ConfigFiles.qll │ │ │ ├── java │ │ │ │ ├── Annotation.qll │ │ │ │ ├── Collections.qll │ │ │ │ ├── CompilationUnit.qll │ │ │ │ ├── Completion.qll │ │ │ │ ├── Concurrency.qll │ │ │ │ ├── ControlFlowGraph.qll │ │ │ │ ├── Conversions.qll │ │ │ │ ├── Dependency.qll │ │ │ │ ├── DependencyCounts.qll │ │ │ │ ├── Element.qll │ │ │ │ ├── Exception.qll │ │ │ │ ├── Expr.qll │ │ │ │ ├── GeneratedFiles.qll │ │ │ │ ├── Generics.qll │ │ │ │ ├── Import.qll │ │ │ │ ├── J2EE.qll │ │ │ │ ├── JDK.qll │ │ │ │ ├── JDKAnnotations.qll │ │ │ │ ├── JMX.qll │ │ │ │ ├── Javadoc.qll │ │ │ │ ├── Maps.qll │ │ │ │ ├── Member.qll │ │ │ │ ├── Modifier.qll │ │ │ │ ├── Modules.qll │ │ │ │ ├── NumberFormatException.qll │ │ │ │ ├── Package.qll │ │ │ │ ├── PrettyPrintAst.qll │ │ │ │ ├── PrintAst.ql │ │ │ │ ├── PrintAst.qll │ │ │ │ ├── Reflection.qll │ │ │ │ ├── Serializability.qll │ │ │ │ ├── Statement.qll │ │ │ │ ├── StringFormat.qll │ │ │ │ ├── Type.qll │ │ │ │ ├── UnitTests.qll │ │ │ │ ├── Variable.qll │ │ │ │ ├── arithmetic │ │ │ │ │ └── Overflow.qll │ │ │ │ ├── comparison │ │ │ │ │ └── Comparison.qll │ │ │ │ ├── controlflow │ │ │ │ │ ├── BasicBlocks.qll │ │ │ │ │ ├── Dominance.qll │ │ │ │ │ ├── Guards.qll │ │ │ │ │ ├── Paths.qll │ │ │ │ │ ├── UnreachableBlocks.qll │ │ │ │ │ ├── internal │ │ │ │ │ │ ├── GuardsLogic.qll │ │ │ │ │ │ └── Preconditions.qll │ │ │ │ │ └── unreachableblocks │ │ │ │ │ │ └── ExcludeDebuggingProfilingLogging.qll │ │ │ │ ├── dataflow │ │ │ │ │ ├── Bound.qll │ │ │ │ │ ├── DataFlow.qll │ │ │ │ │ ├── DataFlow2.qll │ │ │ │ │ ├── DataFlow3.qll │ │ │ │ │ ├── DataFlow4.qll │ │ │ │ │ ├── DataFlow5.qll │ │ │ │ │ ├── DefUse.qll │ │ │ │ │ ├── ExternalFlow.qll │ │ │ │ │ ├── FlowSources.qll │ │ │ │ │ ├── FlowSteps.qll │ │ │ │ │ ├── InstanceAccess.qll │ │ │ │ │ ├── IntegerGuards.qll │ │ │ │ │ ├── ModulusAnalysis.qll │ │ │ │ │ ├── NullGuards.qll │ │ │ │ │ ├── Nullness.qll │ │ │ │ │ ├── RangeAnalysis.qll │ │ │ │ │ ├── RangeUtils.qll │ │ │ │ │ ├── SSA.qll │ │ │ │ │ ├── SignAnalysis.qll │ │ │ │ │ ├── TaintTracking.qll │ │ │ │ │ ├── TaintTracking2.qll │ │ │ │ │ ├── TypeFlow.qll │ │ │ │ │ └── internal │ │ │ │ │ │ ├── BaseSSA.qll │ │ │ │ │ │ ├── ContainerFlow.qll │ │ │ │ │ │ ├── DataFlowDispatch.qll │ │ │ │ │ │ ├── DataFlowImpl.qll │ │ │ │ │ │ ├── DataFlowImpl2.qll │ │ │ │ │ │ ├── DataFlowImpl3.qll │ │ │ │ │ │ ├── DataFlowImpl4.qll │ │ │ │ │ │ ├── DataFlowImpl5.qll │ │ │ │ │ │ ├── DataFlowImplCommon.qll │ │ │ │ │ │ ├── DataFlowImplConsistency.qll │ │ │ │ │ │ ├── DataFlowImplSpecific.qll │ │ │ │ │ │ ├── DataFlowPrivate.qll │ │ │ │ │ │ ├── DataFlowUtil.qll │ │ │ │ │ │ ├── TaintTrackingUtil.qll │ │ │ │ │ │ ├── rangeanalysis │ │ │ │ │ │ ├── BoundSpecific.qll │ │ │ │ │ │ ├── ModulusAnalysisSpecific.qll │ │ │ │ │ │ ├── Sign.qll │ │ │ │ │ │ ├── SignAnalysisCommon.qll │ │ │ │ │ │ ├── SignAnalysisSpecific.qll │ │ │ │ │ │ ├── SsaReadPositionCommon.qll │ │ │ │ │ │ └── SsaReadPositionSpecific.qll │ │ │ │ │ │ ├── tainttracking1 │ │ │ │ │ │ ├── TaintTrackingImpl.qll │ │ │ │ │ │ └── TaintTrackingParameter.qll │ │ │ │ │ │ └── tainttracking2 │ │ │ │ │ │ ├── TaintTrackingImpl.qll │ │ │ │ │ │ └── TaintTrackingParameter.qll │ │ │ │ ├── deadcode │ │ │ │ │ ├── DeadCode.qll │ │ │ │ │ ├── DeadCodeCustomizations.qll │ │ │ │ │ ├── DeadEnumConstant.qll │ │ │ │ │ ├── DeadField.qll │ │ │ │ │ ├── EntryPoints.qll │ │ │ │ │ ├── SpringEntryPoints.qll │ │ │ │ │ ├── StrutsEntryPoints.qll │ │ │ │ │ ├── TestEntryPoints.qll │ │ │ │ │ ├── WebEntryPoints.qll │ │ │ │ │ └── frameworks │ │ │ │ │ │ ├── CamelEntryPoints.qll │ │ │ │ │ │ ├── FitNesseEntryPoints.qll │ │ │ │ │ │ └── GigaSpacesXAPEntryPoints.qll │ │ │ │ ├── dispatch │ │ │ │ │ ├── DispatchFlow.qll │ │ │ │ │ ├── ObjFlow.qll │ │ │ │ │ ├── VirtualDispatch.qll │ │ │ │ │ └── WrappedInvocation.qll │ │ │ │ ├── frameworks │ │ │ │ │ ├── ApacheHttp.qll │ │ │ │ │ ├── ApacheLdap.qll │ │ │ │ │ ├── Assertions.qll │ │ │ │ │ ├── Camel.qll │ │ │ │ │ ├── Cucumber.qll │ │ │ │ │ ├── FastJson.qll │ │ │ │ │ ├── Guice.qll │ │ │ │ │ ├── Hibernate.qll │ │ │ │ │ ├── JAXB.qll │ │ │ │ │ ├── JUnitAnnotations.qll │ │ │ │ │ ├── JavaxAnnotations.qll │ │ │ │ │ ├── JaxWS.qll │ │ │ │ │ ├── Jdbc.qll │ │ │ │ │ ├── Jndi.qll │ │ │ │ │ ├── Kryo.qll │ │ │ │ │ ├── Lombok.qll │ │ │ │ │ ├── Mockito.qll │ │ │ │ │ ├── MyBatis.qll │ │ │ │ │ ├── Networking.qll │ │ │ │ │ ├── Properties.qll │ │ │ │ │ ├── Protobuf.qll │ │ │ │ │ ├── Rmi.qll │ │ │ │ │ ├── Selenium.qll │ │ │ │ │ ├── Servlets.qll │ │ │ │ │ ├── SnakeYaml.qll │ │ │ │ │ ├── SpringJdbc.qll │ │ │ │ │ ├── SpringLdap.qll │ │ │ │ │ ├── SpringWeb.qll │ │ │ │ │ ├── Thrift.qll │ │ │ │ │ ├── UnboundId.qll │ │ │ │ │ ├── XStream.qll │ │ │ │ │ ├── android │ │ │ │ │ │ ├── Android.qll │ │ │ │ │ │ ├── Intent.qll │ │ │ │ │ │ ├── SQLite.qll │ │ │ │ │ │ ├── SharedPreferences.qll │ │ │ │ │ │ ├── WebView.qll │ │ │ │ │ │ └── XmlParsing.qll │ │ │ │ │ ├── apache │ │ │ │ │ │ ├── Exec.qll │ │ │ │ │ │ └── Lang.qll │ │ │ │ │ ├── camel │ │ │ │ │ │ ├── CamelJavaAnnotations.qll │ │ │ │ │ │ └── CamelJavaDSL.qll │ │ │ │ │ ├── gigaspaces │ │ │ │ │ │ └── GigaSpaces.qll │ │ │ │ │ ├── google │ │ │ │ │ │ └── GoogleHttpClientApi.qll │ │ │ │ │ ├── guava │ │ │ │ │ │ ├── Base.qll │ │ │ │ │ │ ├── Collections.qll │ │ │ │ │ │ ├── Guava.qll │ │ │ │ │ │ └── IO.qll │ │ │ │ │ ├── gwt │ │ │ │ │ │ ├── GWT.qll │ │ │ │ │ │ ├── GwtUiBinder.qll │ │ │ │ │ │ ├── GwtUiBinderXml.qll │ │ │ │ │ │ └── GwtXml.qll │ │ │ │ │ ├── j2objc │ │ │ │ │ │ └── J2ObjC.qll │ │ │ │ │ ├── jOOQ.qll │ │ │ │ │ ├── jackson │ │ │ │ │ │ └── JacksonSerializability.qll │ │ │ │ │ ├── javaee │ │ │ │ │ │ ├── JavaServerFaces.qll │ │ │ │ │ │ ├── Persistence.qll │ │ │ │ │ │ ├── PersistenceXML.qll │ │ │ │ │ │ ├── ejb │ │ │ │ │ │ │ ├── EJB.qll │ │ │ │ │ │ │ ├── EJBJarXML.qll │ │ │ │ │ │ │ └── EJBRestrictions.qll │ │ │ │ │ │ └── jsf │ │ │ │ │ │ │ ├── JSFAnnotations.qll │ │ │ │ │ │ │ └── JSFFacesContextXML.qll │ │ │ │ │ ├── javase │ │ │ │ │ │ ├── Http.qll │ │ │ │ │ │ └── WebSocket.qll │ │ │ │ │ ├── play │ │ │ │ │ │ └── Play.qll │ │ │ │ │ ├── spring │ │ │ │ │ │ ├── Spring.qll │ │ │ │ │ │ ├── SpringAbstractRef.qll │ │ │ │ │ │ ├── SpringAlias.qll │ │ │ │ │ │ ├── SpringArgType.qll │ │ │ │ │ │ ├── SpringAttribute.qll │ │ │ │ │ │ ├── SpringAutowire.qll │ │ │ │ │ │ ├── SpringBean.qll │ │ │ │ │ │ ├── SpringBeanFile.qll │ │ │ │ │ │ ├── SpringBeanRefType.qll │ │ │ │ │ │ ├── SpringCamel.qll │ │ │ │ │ │ ├── SpringComponentScan.qll │ │ │ │ │ │ ├── SpringConstructorArg.qll │ │ │ │ │ │ ├── SpringController.qll │ │ │ │ │ │ ├── SpringDescription.qll │ │ │ │ │ │ ├── SpringEntry.qll │ │ │ │ │ │ ├── SpringFlex.qll │ │ │ │ │ │ ├── SpringHttp.qll │ │ │ │ │ │ ├── SpringIdRef.qll │ │ │ │ │ │ ├── SpringImport.qll │ │ │ │ │ │ ├── SpringInitializingBean.qll │ │ │ │ │ │ ├── SpringKey.qll │ │ │ │ │ │ ├── SpringList.qll │ │ │ │ │ │ ├── SpringListOrSet.qll │ │ │ │ │ │ ├── SpringLookupMethod.qll │ │ │ │ │ │ ├── SpringMap.qll │ │ │ │ │ │ ├── SpringMergable.qll │ │ │ │ │ │ ├── SpringMeta.qll │ │ │ │ │ │ ├── SpringNull.qll │ │ │ │ │ │ ├── SpringProfile.qll │ │ │ │ │ │ ├── SpringProp.qll │ │ │ │ │ │ ├── SpringProperty.qll │ │ │ │ │ │ ├── SpringProps.qll │ │ │ │ │ │ ├── SpringQualifier.qll │ │ │ │ │ │ ├── SpringRef.qll │ │ │ │ │ │ ├── SpringReplacedMethod.qll │ │ │ │ │ │ ├── SpringSet.qll │ │ │ │ │ │ ├── SpringValue.qll │ │ │ │ │ │ ├── SpringWeb.qll │ │ │ │ │ │ ├── SpringWebClient.qll │ │ │ │ │ │ ├── SpringXMLElement.qll │ │ │ │ │ │ └── metrics │ │ │ │ │ │ │ ├── MetricSpringBean.qll │ │ │ │ │ │ │ └── MetricSpringBeanFile.qll │ │ │ │ │ └── struts │ │ │ │ │ │ ├── StrutsActions.qll │ │ │ │ │ │ ├── StrutsAnnotations.qll │ │ │ │ │ │ ├── StrutsConventions.qll │ │ │ │ │ │ └── StrutsXML.qll │ │ │ │ ├── metrics │ │ │ │ │ ├── MetricCallable.qll │ │ │ │ │ ├── MetricElement.qll │ │ │ │ │ ├── MetricField.qll │ │ │ │ │ ├── MetricPackage.qll │ │ │ │ │ ├── MetricRefType.qll │ │ │ │ │ └── MetricStmt.qll │ │ │ │ └── security │ │ │ │ │ ├── CommandArguments.qll │ │ │ │ │ ├── ControlledString.qll │ │ │ │ │ ├── Encryption.qll │ │ │ │ │ ├── ExternalAPIs.qll │ │ │ │ │ ├── ExternalProcess.qll │ │ │ │ │ ├── FileReadWrite.qll │ │ │ │ │ ├── FileWritable.qll │ │ │ │ │ ├── LdapInjection.qll │ │ │ │ │ ├── PathCreation.qll │ │ │ │ │ ├── QueryInjection.qll │ │ │ │ │ ├── Random.qll │ │ │ │ │ ├── RelativePaths.qll │ │ │ │ │ ├── ResponseSplitting.qll │ │ │ │ │ ├── SecurityTests.qll │ │ │ │ │ ├── SensitiveActions.qll │ │ │ │ │ ├── SqlUnescapedLib.qll │ │ │ │ │ ├── UnsafeDeserialization.qll │ │ │ │ │ ├── UrlRedirect.qll │ │ │ │ │ ├── Validation.qll │ │ │ │ │ ├── XSS.qll │ │ │ │ │ └── XmlParsers.qll │ │ │ └── xml │ │ │ │ ├── AndroidManifest.qll │ │ │ │ ├── Ant.qll │ │ │ │ ├── MavenPom.qll │ │ │ │ ├── WebXML.qll │ │ │ │ └── XML.qll │ │ │ └── files │ │ │ └── FileSystem.qll │ └── test │ │ ├── .project │ │ ├── .qlpath │ │ ├── TestUtilities │ │ ├── InlineExpectationsTest.qll │ │ └── InlineExpectationsTestPrivate.qll │ │ ├── experimental │ │ ├── README.md │ │ ├── query-tests │ │ │ └── security │ │ │ │ ├── CWE-016 │ │ │ │ ├── SpringBootActuators.expected │ │ │ │ ├── SpringBootActuators.java │ │ │ │ ├── SpringBootActuators.qlref │ │ │ │ └── options │ │ │ │ ├── CWE-074-JndiInjection │ │ │ │ ├── JndiInjection.expected │ │ │ │ ├── JndiInjection.java │ │ │ │ ├── JndiInjection.qlref │ │ │ │ └── options │ │ │ │ ├── CWE-074 │ │ │ │ ├── XsltInjection.expected │ │ │ │ ├── XsltInjection.java │ │ │ │ ├── XsltInjection.qlref │ │ │ │ └── options │ │ │ │ ├── CWE-094 │ │ │ │ ├── Jexl2Injection.java │ │ │ │ ├── Jexl3Injection.java │ │ │ │ ├── JexlInjection.expected │ │ │ │ ├── JexlInjection.qlref │ │ │ │ ├── MvelInjection.expected │ │ │ │ ├── MvelInjection.java │ │ │ │ ├── MvelInjection.qlref │ │ │ │ ├── SandboxedJexl2.java │ │ │ │ ├── SandboxedJexl3.java │ │ │ │ ├── ScriptEngine.expected │ │ │ │ ├── ScriptEngine.qlref │ │ │ │ ├── ScriptEngineTest.java │ │ │ │ ├── SpelInjection.expected │ │ │ │ ├── SpelInjection.java │ │ │ │ ├── SpelInjection.qlref │ │ │ │ └── options │ │ │ │ ├── CWE-273 │ │ │ │ ├── UnsafeCertTrust.expected │ │ │ │ ├── UnsafeCertTrust.qlref │ │ │ │ └── UnsafeCertTrustTest.java │ │ │ │ ├── CWE-295 │ │ │ │ ├── jxbrowser-6.23.1 │ │ │ │ │ ├── JxBrowserWithoutCertValidation.expected │ │ │ │ │ ├── JxBrowserWithoutCertValidation.qlref │ │ │ │ │ ├── JxBrowserWithoutCertValidationV6_23_1.java │ │ │ │ │ └── options │ │ │ │ └── jxbrowser-6.24 │ │ │ │ │ ├── JxBrowserWithoutCertValidation.expected │ │ │ │ │ ├── JxBrowserWithoutCertValidation.qlref │ │ │ │ │ ├── JxBrowserWithoutCertValidationV6_24.java │ │ │ │ │ └── options │ │ │ │ ├── CWE-297 │ │ │ │ ├── InsecureJavaMail.expected │ │ │ │ ├── InsecureJavaMail.java │ │ │ │ ├── InsecureJavaMail.qlref │ │ │ │ ├── InsecureLdapEndpoint.expected │ │ │ │ ├── InsecureLdapEndpoint.java │ │ │ │ ├── InsecureLdapEndpoint.qlref │ │ │ │ └── options │ │ │ │ ├── CWE-299 │ │ │ │ ├── DisabledRevocationChecking.expected │ │ │ │ ├── DisabledRevocationChecking.java │ │ │ │ └── DisabledRevocationChecking.qlref │ │ │ │ ├── CWE-312 │ │ │ │ ├── CleartextStorageSharedPrefs.expected │ │ │ │ ├── CleartextStorageSharedPrefs.java │ │ │ │ ├── CleartextStorageSharedPrefs.qlref │ │ │ │ └── options │ │ │ │ ├── CWE-326 │ │ │ │ ├── InsufficientKeySize.expected │ │ │ │ ├── InsufficientKeySize.java │ │ │ │ └── InsufficientKeySize.qlref │ │ │ │ ├── CWE-327 │ │ │ │ ├── UnsafeTlsVersion.expected │ │ │ │ ├── UnsafeTlsVersion.java │ │ │ │ └── UnsafeTlsVersion.qlref │ │ │ │ ├── CWE-346 │ │ │ │ ├── UnvalidatedCors.expected │ │ │ │ ├── UnvalidatedCors.java │ │ │ │ ├── UnvalidatedCors.qlref │ │ │ │ └── options │ │ │ │ ├── CWE-489 │ │ │ │ ├── ServiceBean.expected │ │ │ │ ├── ServiceBean.java │ │ │ │ ├── ServiceBean.qlref │ │ │ │ ├── ServletContextListenerMain.java │ │ │ │ ├── ServletMain.expected │ │ │ │ ├── ServletMain.java │ │ │ │ ├── ServletMain.qlref │ │ │ │ └── options │ │ │ │ ├── CWE-502 │ │ │ │ ├── SpringExporterUnsafeDeserialization.java │ │ │ │ ├── UnsafeSpringExporterInConfigurationClass.expected │ │ │ │ ├── UnsafeSpringExporterInConfigurationClass.qlref │ │ │ │ ├── UnsafeSpringExporterInXMLConfiguration.expected │ │ │ │ ├── UnsafeSpringExporterInXMLConfiguration.qlref │ │ │ │ ├── beans.xml │ │ │ │ └── options │ │ │ │ ├── CWE-522 │ │ │ │ ├── InsecureBasicAuth.expected │ │ │ │ ├── InsecureBasicAuth.java │ │ │ │ ├── InsecureBasicAuth.qlref │ │ │ │ ├── InsecureLdapAuth.expected │ │ │ │ ├── InsecureLdapAuth.java │ │ │ │ ├── InsecureLdapAuth.qlref │ │ │ │ └── options │ │ │ │ ├── CWE-548 │ │ │ │ ├── A.java │ │ │ │ ├── InsecureDirectoryConfig.expected │ │ │ │ ├── InsecureDirectoryConfig.qlref │ │ │ │ └── insecure-web.xml │ │ │ │ ├── CWE-555 │ │ │ │ ├── A.java │ │ │ │ ├── PasswordInConfigurationFile.expected │ │ │ │ ├── PasswordInConfigurationFile.qlref │ │ │ │ ├── applicationContext.xml │ │ │ │ ├── context.xml │ │ │ │ └── custom-config.xml │ │ │ │ ├── CWE-598 │ │ │ │ ├── SensitiveGetQuery.expected │ │ │ │ ├── SensitiveGetQuery.java │ │ │ │ ├── SensitiveGetQuery.qlref │ │ │ │ ├── SensitiveGetQuery2.java │ │ │ │ ├── SensitiveGetQuery3.java │ │ │ │ ├── SensitiveGetQuery4.java │ │ │ │ └── options │ │ │ │ ├── CWE-600 │ │ │ │ ├── UncaughtServletException.expected │ │ │ │ ├── UncaughtServletException.java │ │ │ │ ├── UncaughtServletException.qlref │ │ │ │ ├── UncaughtServletException2.java │ │ │ │ ├── options │ │ │ │ └── web.xml │ │ │ │ ├── CWE-652 │ │ │ │ ├── XQueryInjection.expected │ │ │ │ ├── XQueryInjection.java │ │ │ │ ├── XQueryInjection.qlref │ │ │ │ └── options │ │ │ │ ├── CWE-749 │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── IntentUtils.java │ │ │ │ ├── SafeActivity1.java │ │ │ │ ├── SafeActivity2.java │ │ │ │ ├── SafeActivity3.java │ │ │ │ ├── UnsafeActivity1.java │ │ │ │ ├── UnsafeActivity2.java │ │ │ │ ├── UnsafeActivity3.java │ │ │ │ ├── UnsafeActivity4.java │ │ │ │ ├── UnsafeAndroidAccess.expected │ │ │ │ ├── UnsafeAndroidAccess.java │ │ │ │ ├── UnsafeAndroidAccess.qlref │ │ │ │ ├── UnsafeAndroidBroadcastReceiver.java │ │ │ │ └── options │ │ │ │ ├── CWE-755 │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── IntentUtils.java │ │ │ │ ├── NFEAndroidDoS.expected │ │ │ │ ├── NFEAndroidDoS.java │ │ │ │ ├── NFEAndroidDoS.qlref │ │ │ │ ├── SafeActivity.java │ │ │ │ └── options │ │ │ │ ├── CWE-759 │ │ │ │ ├── HASH.java │ │ │ │ ├── HashWithoutSalt.expected │ │ │ │ ├── HashWithoutSalt.java │ │ │ │ ├── HashWithoutSalt.qlref │ │ │ │ ├── SHA256.java │ │ │ │ └── SHA512.java │ │ │ │ ├── CWE-917 │ │ │ │ ├── OgnlInjection.expected │ │ │ │ ├── OgnlInjection.java │ │ │ │ ├── OgnlInjection.qlref │ │ │ │ └── options │ │ │ │ ├── CWE-918 │ │ │ │ ├── JaxWsSSRF.java │ │ │ │ ├── RequestForgery.expected │ │ │ │ ├── RequestForgery.java │ │ │ │ ├── RequestForgery.qlref │ │ │ │ ├── RequestForgery2.java │ │ │ │ ├── Sinks.java │ │ │ │ ├── SpringSSRF.java │ │ │ │ └── options │ │ │ │ └── CWE-927 │ │ │ │ ├── SensitiveBroadcast.expected │ │ │ │ ├── SensitiveBroadcast.java │ │ │ │ ├── SensitiveBroadcast.qlref │ │ │ │ └── options │ │ └── stubs │ │ │ ├── Saxon-HE-9.9.1-7 │ │ │ └── net │ │ │ │ └── sf │ │ │ │ └── saxon │ │ │ │ ├── Configuration.java │ │ │ │ ├── lib │ │ │ │ └── SourceResolver.java │ │ │ │ ├── om │ │ │ │ └── NotationSet.java │ │ │ │ └── s9api │ │ │ │ ├── AbstractXsltTransformer.java │ │ │ │ ├── Destination.java │ │ │ │ ├── Processor.java │ │ │ │ ├── QName.java │ │ │ │ ├── SaxonApiException.java │ │ │ │ ├── SaxonApiUncheckedException.java │ │ │ │ ├── XdmItem.java │ │ │ │ ├── XdmValue.java │ │ │ │ ├── Xslt30Transformer.java │ │ │ │ ├── XsltCompiler.java │ │ │ │ ├── XsltExecutable.java │ │ │ │ ├── XsltPackage.java │ │ │ │ └── XsltTransformer.java │ │ │ ├── javax-ws-rs-api-2.1.1 │ │ │ └── javax │ │ │ │ └── ws │ │ │ │ └── rs │ │ │ │ ├── client │ │ │ │ ├── Client.java │ │ │ │ ├── ClientBuilder.java │ │ │ │ └── WebTarget.java │ │ │ │ └── core │ │ │ │ ├── Configurable.java │ │ │ │ ├── Configuration.java │ │ │ │ ├── Link.java │ │ │ │ ├── UriBuilder.java │ │ │ │ └── UriBuilderException.java │ │ │ ├── jxbrowser-6.23.1 │ │ │ └── com │ │ │ │ └── teamdev │ │ │ │ └── jxbrowser │ │ │ │ └── chromium │ │ │ │ ├── Browser.java │ │ │ │ ├── CertificateErrorParams.java │ │ │ │ ├── LoadHandler.java │ │ │ │ └── LoadParams.java │ │ │ ├── jxbrowser-6.24 │ │ │ └── com │ │ │ │ └── teamdev │ │ │ │ └── jxbrowser │ │ │ │ └── chromium │ │ │ │ ├── BoundsListener.java │ │ │ │ ├── Browser.java │ │ │ │ ├── CertificateErrorParams.java │ │ │ │ ├── LoadHandler.java │ │ │ │ └── LoadParams.java │ │ │ ├── ognl-3.2.14 │ │ │ └── ognl │ │ │ │ ├── JavaSource.java │ │ │ │ ├── Node.java │ │ │ │ ├── Ognl.java │ │ │ │ ├── OgnlContext.java │ │ │ │ └── OgnlException.java │ │ │ ├── shiro-core-1.5.2 │ │ │ └── org │ │ │ │ └── apache │ │ │ │ └── shiro │ │ │ │ └── jndi │ │ │ │ └── JndiTemplate.java │ │ │ └── struts2-core-2.5.22 │ │ │ └── com │ │ │ └── opensymphony │ │ │ └── xwork2 │ │ │ └── ognl │ │ │ └── OgnlUtil.java │ │ ├── format.json │ │ ├── library-tests │ │ ├── Encryption │ │ │ ├── Test.java │ │ │ ├── cryptoalgospec.expected │ │ │ ├── cryptoalgospec.ql │ │ │ ├── insecure.expected │ │ │ ├── insecure.ql │ │ │ ├── secure.expected │ │ │ └── secure.ql │ │ ├── ExternalProcess │ │ │ ├── Test.java │ │ │ ├── argumentToExec.expected │ │ │ ├── argumentToExec.ql │ │ │ └── options │ │ ├── GeneratedFiles │ │ │ ├── FacebookAutoGen.java │ │ │ ├── FollowingCodeGenerated.java │ │ │ ├── Generated.expected │ │ │ ├── Generated.ql │ │ │ ├── HasBeenGenerated.java │ │ │ ├── JavaCharStream.java │ │ │ ├── JavaParserTokenManager.java │ │ │ ├── Mithra.java │ │ │ ├── QLParser.java │ │ │ ├── StandardCharsets.java │ │ │ ├── Test.java │ │ │ ├── Test2.java │ │ │ └── test │ │ │ │ └── ThriftCompiler.java │ │ ├── JDK │ │ │ ├── Main.expected │ │ │ ├── Main.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ ├── SystemGetPropertyCall.expected │ │ │ ├── SystemGetPropertyCall.ql │ │ │ └── jdk │ │ │ │ ├── A.java │ │ │ │ └── SystemGetPropertyCall.java │ │ ├── RelativePaths │ │ │ ├── Test.java │ │ │ ├── relativePath.expected │ │ │ └── relativePath.ql │ │ ├── UnsafeDeserialization │ │ │ ├── Test.java │ │ │ ├── unsafeDeserialization.expected │ │ │ └── unsafeDeserialization.ql │ │ ├── arrays │ │ │ ├── ArrayInits.expected │ │ │ ├── ArrayInits.ql │ │ │ ├── Dimension.expected │ │ │ ├── Dimension.ql │ │ │ ├── ElementType.expected │ │ │ ├── ElementType.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ └── arrays │ │ │ │ ├── A.java │ │ │ │ └── B.java │ │ ├── callgraph │ │ │ ├── HashCodeCallees.expected │ │ │ ├── HashCodeCallees.ql │ │ │ └── callgraph │ │ │ │ └── A.java │ │ ├── collections │ │ │ ├── MapMethods.expected │ │ │ ├── MapMethods.ql │ │ │ ├── Maps.expected │ │ │ ├── Maps.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ └── collections │ │ │ │ └── Test.java │ │ ├── commentedcode │ │ │ ├── CommentedCode.expected │ │ │ ├── CommentedCode.java │ │ │ ├── CommentedCode.ql │ │ │ ├── Test.java │ │ │ └── options │ │ ├── comments │ │ │ ├── .gitattributes │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ ├── Test.java │ │ │ ├── TestWindows.java │ │ │ ├── toString.expected │ │ │ └── toString.ql │ │ ├── complexity │ │ │ ├── Complexity.expected │ │ │ ├── Complexity.java │ │ │ └── Complexity.ql │ │ ├── constants │ │ │ ├── CompileTimeConstantExpr.expected │ │ │ ├── CompileTimeConstantExpr.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ ├── constants │ │ │ │ ├── Constants.java │ │ │ │ ├── Initializers.java │ │ │ │ └── Values.java │ │ │ ├── getBooleanValue.expected │ │ │ ├── getBooleanValue.ql │ │ │ ├── getInitializer.expected │ │ │ ├── getInitializer.ql │ │ │ ├── getIntValue.expected │ │ │ └── getIntValue.ql │ │ ├── constructors │ │ │ ├── ClassInstanceExpr.expected │ │ │ ├── ClassInstanceExpr.ql │ │ │ ├── ConstructorCalls.expected │ │ │ ├── ConstructorCalls.ql │ │ │ ├── InitMethods.expected │ │ │ ├── InitMethods.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ └── constructors │ │ │ │ └── A.java │ │ ├── controlflow │ │ │ ├── basic │ │ │ │ ├── Test.java │ │ │ │ ├── bbStmts.expected │ │ │ │ ├── bbStmts.ql │ │ │ │ ├── bbStrictDominance.expected │ │ │ │ ├── bbStrictDominance.ql │ │ │ │ ├── bbSuccessor.expected │ │ │ │ ├── bbSuccessor.ql │ │ │ │ ├── strictDominance.expected │ │ │ │ ├── strictDominance.ql │ │ │ │ ├── strictPostDominance.expected │ │ │ │ └── strictPostDominance.ql │ │ │ ├── dominance │ │ │ │ ├── Test.java │ │ │ │ ├── Test2.java │ │ │ │ ├── dominanceBad.expected │ │ │ │ ├── dominanceBad.ql │ │ │ │ ├── dominanceWrong.expected │ │ │ │ ├── dominanceWrong.ql │ │ │ │ ├── dominatedByStart.expected │ │ │ │ ├── dominatedByStart.ql │ │ │ │ ├── dominator.expected │ │ │ │ ├── dominator.ql │ │ │ │ ├── dominatorExists.expected │ │ │ │ ├── dominatorExists.ql │ │ │ │ ├── dominatorUnique.expected │ │ │ │ └── dominatorUnique.ql │ │ │ └── paths │ │ │ │ ├── A.java │ │ │ │ ├── paths.expected │ │ │ │ └── paths.ql │ │ ├── dataflow │ │ │ ├── call-sensitivity │ │ │ │ ├── A.java │ │ │ │ ├── A2.java │ │ │ │ ├── InterfaceA.java │ │ │ │ ├── InterfaceB.java │ │ │ │ ├── flow.expected │ │ │ │ └── flow.ql │ │ │ ├── callctx │ │ │ │ ├── A.java │ │ │ │ ├── test.expected │ │ │ │ └── test.ql │ │ │ ├── capture │ │ │ │ ├── A.java │ │ │ │ ├── test.expected │ │ │ │ └── test.ql │ │ │ ├── collections │ │ │ │ ├── ContainterTest.java │ │ │ │ ├── Test.java │ │ │ │ ├── flow.expected │ │ │ │ └── flow.ql │ │ │ ├── external-models │ │ │ │ ├── A.java │ │ │ │ ├── B.java │ │ │ │ ├── C.java │ │ │ │ ├── sinks.expected │ │ │ │ ├── sinks.ql │ │ │ │ ├── srcs.expected │ │ │ │ ├── srcs.ql │ │ │ │ ├── steps.expected │ │ │ │ └── steps.ql │ │ │ ├── fields │ │ │ │ ├── A.java │ │ │ │ ├── B.java │ │ │ │ ├── C.java │ │ │ │ ├── D.java │ │ │ │ ├── E.java │ │ │ │ ├── F.java │ │ │ │ ├── flow.expected │ │ │ │ └── flow.ql │ │ │ ├── fluent-methods │ │ │ │ ├── Test.java │ │ │ │ ├── flow.expected │ │ │ │ └── flow.ql │ │ │ ├── getter │ │ │ │ ├── A.java │ │ │ │ ├── getter.expected │ │ │ │ └── getter.ql │ │ │ ├── inoutbarriers │ │ │ │ ├── A.java │ │ │ │ ├── test.expected │ │ │ │ └── test.ql │ │ │ ├── lambda │ │ │ │ ├── Executor.java │ │ │ │ ├── Processor.java │ │ │ │ ├── StringProcessor.java │ │ │ │ ├── flow.expected │ │ │ │ └── flow.ql │ │ │ ├── local-additional-taint │ │ │ │ ├── ArraysTest.java │ │ │ │ ├── CollectionsTest.java │ │ │ │ ├── Test.java │ │ │ │ ├── localAdditionalTaintStep.expected │ │ │ │ ├── localAdditionalTaintStep.ql │ │ │ │ └── options │ │ │ ├── local-flow │ │ │ │ ├── ObjectsTest.java │ │ │ │ ├── flow.expected │ │ │ │ ├── flow.ql │ │ │ │ └── options │ │ │ ├── modulus-analysis │ │ │ │ ├── ModulusAnalysis.expected │ │ │ │ ├── ModulusAnalysis.java │ │ │ │ └── ModulusAnalysis.ql │ │ │ ├── null │ │ │ │ ├── A.java │ │ │ │ ├── testnullflow.expected │ │ │ │ └── testnullflow.ql │ │ │ ├── partial │ │ │ │ ├── A.java │ │ │ │ ├── test.expected │ │ │ │ ├── test.ql │ │ │ │ ├── testRev.expected │ │ │ │ └── testRev.ql │ │ │ ├── range-analysis │ │ │ │ ├── A.java │ │ │ │ ├── RangeAnalysis.expected │ │ │ │ └── RangeAnalysis.ql │ │ │ ├── records │ │ │ │ ├── A.java │ │ │ │ ├── options │ │ │ │ ├── test.expected │ │ │ │ └── test.ql │ │ │ ├── sign-analysis │ │ │ │ ├── A.java │ │ │ │ ├── SignAnalysis.expected │ │ │ │ └── SignAnalysis.ql │ │ │ ├── switchexpr │ │ │ │ ├── TestSwitchExpr.java │ │ │ │ ├── options │ │ │ │ ├── switchexprflow.expected │ │ │ │ └── switchexprflow.ql │ │ │ ├── taint-format │ │ │ │ ├── A.java │ │ │ │ ├── options │ │ │ │ ├── test.expected │ │ │ │ └── test.ql │ │ │ ├── taint-ioutils │ │ │ │ ├── Test.java │ │ │ │ ├── dataFlow.expected │ │ │ │ ├── dataFlow.ql │ │ │ │ └── options │ │ │ ├── taint-jackson │ │ │ │ ├── Test.java │ │ │ │ ├── dataFlow.expected │ │ │ │ ├── dataFlow.ql │ │ │ │ └── options │ │ │ ├── taint │ │ │ │ ├── A.java │ │ │ │ ├── B.java │ │ │ │ ├── MethodFlow.java │ │ │ │ ├── StringBuilderTests.java │ │ │ │ ├── Varargs.java │ │ │ │ ├── test.expected │ │ │ │ └── test.ql │ │ │ ├── taintgettersetter │ │ │ │ ├── A.java │ │ │ │ ├── taintgettersetter.expected │ │ │ │ └── taintgettersetter.ql │ │ │ ├── taintreturn │ │ │ │ ├── Test.java │ │ │ │ ├── taintreturn.expected │ │ │ │ └── taintreturn.ql │ │ │ ├── taintsources │ │ │ │ ├── A.java │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── IntentSources.java │ │ │ │ ├── PlayResource.java │ │ │ │ ├── RmiFlow.java │ │ │ │ ├── RmiFlowImpl.java │ │ │ │ ├── SpringMultiPart.java │ │ │ │ ├── local.expected │ │ │ │ ├── local.ql │ │ │ │ ├── options │ │ │ │ ├── remote.expected │ │ │ │ └── remote.ql │ │ │ ├── this-flow │ │ │ │ ├── A.java │ │ │ │ ├── this-flow.expected │ │ │ │ └── this-flow.ql │ │ │ └── typepruning │ │ │ │ ├── A.java │ │ │ │ ├── test.expected │ │ │ │ └── test.ql │ │ ├── defUse │ │ │ ├── Test.java │ │ │ ├── defUse.expected │ │ │ ├── defUse.ql │ │ │ ├── parameterUse.expected │ │ │ ├── parameterUse.ql │ │ │ ├── useUse.expected │ │ │ └── useUse.ql │ │ ├── dependency-counts │ │ │ ├── Example.java │ │ │ ├── NumDepends.expected │ │ │ ├── NumDepends.ql │ │ │ ├── PrintAst.expected │ │ │ └── PrintAst.qlref │ │ ├── dependency │ │ │ ├── Depends.expected │ │ │ ├── Depends.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ ├── UsesType.expected │ │ │ ├── UsesType.ql │ │ │ └── dependency │ │ │ │ └── A.java │ │ ├── dispatch │ │ │ ├── Test.java │ │ │ ├── ViableCallable.java │ │ │ ├── ViableCallable2.java │ │ │ ├── ViableCallable3.java │ │ │ ├── ViableCallableA.java │ │ │ ├── ViableCallableB.java │ │ │ ├── viableCallable.expected │ │ │ ├── viableCallable.ql │ │ │ ├── virtualDispatch.expected │ │ │ └── virtualDispatch.ql │ │ ├── fields │ │ │ ├── FieldAnnotations.expected │ │ │ ├── FieldAnnotations.ql │ │ │ ├── FieldDecl.expected │ │ │ ├── FieldDecl.ql │ │ │ ├── FieldDeclLocation.expected │ │ │ ├── FieldDeclLocation.ql │ │ │ ├── FieldLocation.expected │ │ │ ├── FieldLocation.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ └── fields │ │ │ │ └── FieldTest.java │ │ ├── frameworks │ │ │ ├── android │ │ │ │ ├── manifest │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ ├── Test.java │ │ │ │ │ ├── manifest.expected │ │ │ │ │ └── manifest.ql │ │ │ │ └── taint-database │ │ │ │ │ ├── FlowSteps.java │ │ │ │ │ ├── Sinks.java │ │ │ │ │ ├── flowSteps.expected │ │ │ │ │ ├── flowSteps.ql │ │ │ │ │ ├── options │ │ │ │ │ ├── sinks.expected │ │ │ │ │ └── sinks.ql │ │ │ ├── apache-commons-lang3 │ │ │ │ ├── ArrayUtilsTest.java │ │ │ │ ├── ObjectUtilsTest.java │ │ │ │ ├── RegExUtilsTest.java │ │ │ │ ├── StrBuilderTest.java │ │ │ │ ├── StrBuilderTextTest.java │ │ │ │ ├── StrLookupTest.java │ │ │ │ ├── StrSubstitutorTest.java │ │ │ │ ├── StrTokenizerTest.java │ │ │ │ ├── StrTokenizerTextTest.java │ │ │ │ ├── StringLookupTextTest.java │ │ │ │ ├── StringSubstitutorTextTest.java │ │ │ │ ├── StringTokenizerTest.java │ │ │ │ ├── Test.java │ │ │ │ ├── TextStringBuilderTest.java │ │ │ │ ├── WordUtilsTest.java │ │ │ │ ├── WordUtilsTextTest.java │ │ │ │ ├── flow.expected │ │ │ │ ├── flow.ql │ │ │ │ └── options │ │ │ ├── apache-http │ │ │ │ ├── A.java │ │ │ │ ├── B.java │ │ │ │ ├── flow.expected │ │ │ │ ├── flow.ql │ │ │ │ └── options │ │ │ ├── guava │ │ │ │ ├── TestBase.java │ │ │ │ ├── TestCollect.java │ │ │ │ ├── TestIO.java │ │ │ │ ├── flow.expected │ │ │ │ ├── flow.ql │ │ │ │ └── options │ │ │ ├── guice │ │ │ │ ├── GuiceRequestParameters.java │ │ │ │ ├── flow.expected │ │ │ │ ├── flow.ql │ │ │ │ └── options │ │ │ └── play │ │ │ │ ├── PlayActionMethodQueryParameter.expected │ │ │ │ ├── PlayActionMethodQueryParameter.ql │ │ │ │ ├── PlayAddCsrfTokenAnnotation.expected │ │ │ │ ├── PlayAddCsrfTokenAnnotation.ql │ │ │ │ ├── PlayBodyParserAnnotation.expected │ │ │ │ ├── PlayBodyParserAnnotation.ql │ │ │ │ ├── PlayController.expected │ │ │ │ ├── PlayController.ql │ │ │ │ ├── PlayControllerActionMethod.expected │ │ │ │ ├── PlayControllerActionMethod.ql │ │ │ │ ├── PlayMvcHttpRequestHeader.expected │ │ │ │ ├── PlayMvcHttpRequestHeader.ql │ │ │ │ ├── PlayMvcResultClass.expected │ │ │ │ ├── PlayMvcResultClass.ql │ │ │ │ ├── PlayMvcResultsClass.expected │ │ │ │ ├── PlayMvcResultsClass.ql │ │ │ │ ├── PlayMvcResultsMethods.expected │ │ │ │ ├── PlayMvcResultsMethods.ql │ │ │ │ ├── options │ │ │ │ └── resources │ │ │ │ └── Resource.java │ │ ├── generics │ │ │ ├── BinaryTypeVars.expected │ │ │ ├── BinaryTypeVars.ql │ │ │ ├── ParameterizedClassInstanceExpressions.expected │ │ │ ├── ParameterizedClassInstanceExpressions.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ ├── SourceDeclaration.expected │ │ │ ├── SourceDeclaration.ql │ │ │ ├── TypeVarsUpperBound.expected │ │ │ ├── TypeVarsUpperBound.ql │ │ │ ├── WildcardsLowerBound.expected │ │ │ ├── WildcardsLowerBound.ql │ │ │ └── generics │ │ │ │ └── A.java │ │ ├── guards │ │ │ ├── Logic.java │ │ │ ├── Test.java │ │ │ ├── guards.expected │ │ │ ├── guards.ql │ │ │ ├── guardslogic.expected │ │ │ └── guardslogic.ql │ │ ├── guards12 │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ ├── Test.java │ │ │ ├── guard.expected │ │ │ ├── guard.ql │ │ │ └── options │ │ ├── gwt │ │ │ ├── JSNI.expected │ │ │ ├── JSNI.java │ │ │ └── JSNI.ql │ │ ├── j2objc │ │ │ ├── OCNIComment.expected │ │ │ ├── OCNIComment.ql │ │ │ ├── Test.java │ │ │ └── options │ │ ├── java7 │ │ │ ├── Diamond │ │ │ │ ├── Diamond.java │ │ │ │ ├── Diamonds.expected │ │ │ │ ├── Diamonds.ql │ │ │ │ ├── PrintAst.expected │ │ │ │ └── PrintAst.qlref │ │ │ └── MultiCatch │ │ │ │ ├── MultiCatch.expected │ │ │ │ ├── MultiCatch.java │ │ │ │ ├── MultiCatch.ql │ │ │ │ ├── MultiCatchControlFlow.expected │ │ │ │ ├── MultiCatchControlFlow.ql │ │ │ │ ├── PrintAst.expected │ │ │ │ └── PrintAst.qlref │ │ ├── javadoc │ │ │ ├── AllComments.expected │ │ │ ├── AllComments.ql │ │ │ ├── JavadocComments.expected │ │ │ ├── JavadocComments.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ └── javadoc │ │ │ │ └── Test.java │ │ ├── literals │ │ │ ├── literalBoolean.expected │ │ │ ├── literalBoolean.ql │ │ │ ├── literalChar.expected │ │ │ ├── literalChar.ql │ │ │ ├── literalDouble.expected │ │ │ ├── literalDouble.ql │ │ │ ├── literalFloat.expected │ │ │ ├── literalFloat.ql │ │ │ ├── literalInteger.expected │ │ │ ├── literalInteger.ql │ │ │ ├── literalLong.expected │ │ │ ├── literalLong.ql │ │ │ ├── literalString.expected │ │ │ ├── literalString.ql │ │ │ └── literals │ │ │ │ └── Literals.java │ │ ├── localvars │ │ │ ├── LocalVarDeclExprChildren.expected │ │ │ ├── LocalVarDeclExprChildren.ql │ │ │ ├── LocalVarDeclExprTypeAccess.expected │ │ │ ├── LocalVarDeclExprTypeAccess.ql │ │ │ ├── LocalVarDeclExprs.expected │ │ │ ├── LocalVarDeclExprs.ql │ │ │ ├── LocalVarDeclStmtChildren.expected │ │ │ ├── LocalVarDeclStmtChildren.ql │ │ │ ├── TypeAccesses.expected │ │ │ ├── TypeAccesses.ql │ │ │ └── localvars │ │ │ │ └── LocalVarTest.java │ │ ├── locations │ │ │ ├── EnumLocations.expected │ │ │ ├── EnumLocations.ql │ │ │ ├── ExceptionLocations.expected │ │ │ ├── ExceptionLocations.ql │ │ │ ├── LiteralLocations.expected │ │ │ ├── LiteralLocations.ql │ │ │ ├── NegativeLiteralLocation.expected │ │ │ ├── NegativeLiteralLocation.ql │ │ │ ├── NewLocations.expected │ │ │ ├── NewLocations.ql │ │ │ ├── TypeLocations.expected │ │ │ ├── TypeLocations.ql │ │ │ ├── WildcardLocations.expected │ │ │ ├── WildcardLocations.ql │ │ │ └── locations │ │ │ │ ├── A.java │ │ │ │ ├── B.java │ │ │ │ ├── C.java │ │ │ │ ├── D.java │ │ │ │ ├── E.java │ │ │ │ ├── F.java │ │ │ │ └── G.java │ │ ├── modifiers │ │ │ ├── EnumFinality.expected │ │ │ ├── EnumFinality.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ └── Test.java │ │ ├── overrides │ │ │ ├── ConstructedOverrides.expected │ │ │ ├── ConstructedOverrides.java │ │ │ ├── ConstructedOverrides.ql │ │ │ ├── ConstructedOverrides2.expected │ │ │ └── ConstructedOverrides2.ql │ │ ├── overriding │ │ │ ├── Method_getAPossibleImplementation.expected │ │ │ ├── Method_getAPossibleImplementation.ql │ │ │ ├── Method_getAnOverride.expected │ │ │ ├── Method_getAnOverride.ql │ │ │ └── Test.java │ │ ├── pathcreation │ │ │ ├── PathCreation.expected │ │ │ ├── PathCreation.java │ │ │ └── PathCreation.ql │ │ ├── printAst │ │ │ ├── A.java │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ └── options │ │ ├── properties │ │ │ ├── Properties.expected │ │ │ ├── Properties.ql │ │ │ ├── Test.java │ │ │ └── test.properties │ │ ├── qlengine │ │ │ ├── Tst.java │ │ │ ├── castAtType.expected │ │ │ ├── castAtType.ql │ │ │ ├── fromAtType.expected │ │ │ ├── fromAtType.ql │ │ │ ├── instanceOfAtType.expected │ │ │ ├── instanceOfAtType.ql │ │ │ ├── selectAtType.expected │ │ │ └── selectAtType.ql │ │ ├── reflection │ │ │ ├── InferClassParameter.expected │ │ │ ├── InferClassParameter.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ └── reflection │ │ │ │ └── ReflectiveAccess.java │ │ ├── ssa-large │ │ │ ├── Large.java │ │ │ ├── countssa.expected │ │ │ └── countssa.ql │ │ ├── ssa │ │ │ ├── Fields.java │ │ │ ├── Nested.java │ │ │ ├── Test.java │ │ │ ├── TestInstanceOfPattern.java │ │ │ ├── adjacentUses.expected │ │ │ ├── adjacentUses.ql │ │ │ ├── captures.expected │ │ │ ├── captures.ql │ │ │ ├── firstUse.expected │ │ │ ├── firstUse.ql │ │ │ ├── options │ │ │ ├── ssaDef.expected │ │ │ ├── ssaDef.ql │ │ │ ├── ssaPhi.expected │ │ │ ├── ssaPhi.ql │ │ │ ├── ssaUse.expected │ │ │ └── ssaUse.ql │ │ ├── stmts │ │ │ ├── JumpTargets.expected │ │ │ ├── JumpTargets.ql │ │ │ ├── SwitchCases.expected │ │ │ ├── SwitchCases.ql │ │ │ └── stmts │ │ │ │ ├── A.java │ │ │ │ └── B.java │ │ ├── structure │ │ │ ├── DeclaresMember.expected │ │ │ ├── DeclaresMember.ql │ │ │ ├── EnclosingCallables.expected │ │ │ ├── EnclosingCallables.ql │ │ │ ├── EnclosingStatements.expected │ │ │ ├── EnclosingStatements.ql │ │ │ ├── HasMethod.expected │ │ │ ├── HasMethod.ql │ │ │ ├── HasObjectMethod.expected │ │ │ ├── HasObjectMethod.ql │ │ │ ├── InSameTopLevelType.expected │ │ │ ├── InSameTopLevelType.ql │ │ │ ├── IsInType.expected │ │ │ ├── IsInType.ql │ │ │ ├── IsNestedType.expected │ │ │ ├── IsNestedType.ql │ │ │ ├── IsTopLevelType.expected │ │ │ ├── IsTopLevelType.ql │ │ │ ├── OuterType.expected │ │ │ ├── OuterType.ql │ │ │ ├── TypeGetCompilationUnit.expected │ │ │ ├── TypeGetCompilationUnit.ql │ │ │ ├── TypeIsInPackage.expected │ │ │ ├── TypeIsInPackage.ql │ │ │ └── structure │ │ │ │ ├── A.java │ │ │ │ └── Inherit.java │ │ ├── successors │ │ │ ├── CloseReaderTest │ │ │ │ ├── CloseReaderTest.java │ │ │ │ ├── FalseSuccessors.expected │ │ │ │ ├── FalseSuccessors.ql │ │ │ │ ├── PopulateRuntimeException.java │ │ │ │ ├── TestSucc.expected │ │ │ │ └── TestSucc.ql │ │ │ ├── LoopVarReadTest │ │ │ │ ├── FalseSuccessors.expected │ │ │ │ ├── FalseSuccessors.ql │ │ │ │ ├── LoopVarReadTest.java │ │ │ │ ├── PopulateRuntimeException.java │ │ │ │ ├── TestSucc.expected │ │ │ │ └── TestSucc.ql │ │ │ ├── SaveFileTest │ │ │ │ ├── FalseSuccessors.expected │ │ │ │ ├── FalseSuccessors.ql │ │ │ │ ├── PopulateRuntimeException.java │ │ │ │ ├── SaveFileTest.java │ │ │ │ ├── TestSucc.expected │ │ │ │ └── TestSucc.ql │ │ │ ├── SchackTest │ │ │ │ ├── FalseSuccessors.expected │ │ │ │ ├── FalseSuccessors.ql │ │ │ │ ├── PopulateRuntimeException.java │ │ │ │ ├── SchackTest.java │ │ │ │ ├── TestSucc.expected │ │ │ │ └── TestSucc.ql │ │ │ ├── TestBreak │ │ │ │ ├── FalseSuccessors.expected │ │ │ │ ├── FalseSuccessors.ql │ │ │ │ ├── PopulateRuntimeException.java │ │ │ │ ├── TestBreak.java │ │ │ │ ├── TestSucc.expected │ │ │ │ └── TestSucc.ql │ │ │ ├── TestContinue │ │ │ │ ├── FalseSuccessors.expected │ │ │ │ ├── FalseSuccessors.ql │ │ │ │ ├── PopulateRuntimeException.java │ │ │ │ ├── TestContinue.java │ │ │ │ ├── TestSucc.expected │ │ │ │ └── TestSucc.ql │ │ │ ├── TestDeclarations │ │ │ │ ├── FalseSuccessors.expected │ │ │ │ ├── FalseSuccessors.ql │ │ │ │ ├── PopulateRuntimeException.java │ │ │ │ ├── TestDeclarations.java │ │ │ │ ├── TestSucc.expected │ │ │ │ └── TestSucc.ql │ │ │ ├── TestFinally │ │ │ │ ├── FalseSuccessors.expected │ │ │ │ ├── FalseSuccessors.ql │ │ │ │ ├── PopulateRuntimeException.java │ │ │ │ ├── TestFinally.java │ │ │ │ ├── TestSucc.expected │ │ │ │ └── TestSucc.ql │ │ │ ├── TestFinallyBreakContinue │ │ │ │ ├── FalseSuccessors.expected │ │ │ │ ├── FalseSuccessors.ql │ │ │ │ ├── PopulateRuntimeException.java │ │ │ │ ├── TestFinallyBreakContinue.java │ │ │ │ ├── TestSucc.expected │ │ │ │ └── TestSucc.ql │ │ │ ├── TestLoopBranch │ │ │ │ ├── FalseSuccessors.expected │ │ │ │ ├── FalseSuccessors.ql │ │ │ │ ├── PopulateRuntimeException.java │ │ │ │ ├── TestLoopBranch.java │ │ │ │ ├── TestSucc.expected │ │ │ │ └── TestSucc.ql │ │ │ ├── TestThrow │ │ │ │ ├── FalseSuccessors.expected │ │ │ │ ├── FalseSuccessors.ql │ │ │ │ ├── PopulateRuntimeException.java │ │ │ │ ├── TestSucc.expected │ │ │ │ ├── TestSucc.ql │ │ │ │ └── TestThrow.java │ │ │ ├── TestThrow2 │ │ │ │ ├── FalseSuccessors.expected │ │ │ │ ├── FalseSuccessors.ql │ │ │ │ ├── PopulateRuntimeException.java │ │ │ │ ├── TestSucc.expected │ │ │ │ ├── TestSucc.ql │ │ │ │ └── TestThrow2.java │ │ │ ├── TestTryCatch │ │ │ │ ├── FalseSuccessors.expected │ │ │ │ ├── FalseSuccessors.ql │ │ │ │ ├── PopulateRuntimeException.java │ │ │ │ ├── TestSucc.expected │ │ │ │ ├── TestSucc.ql │ │ │ │ └── TestTryCatch.java │ │ │ └── TestTryWithResources │ │ │ │ ├── FalseSuccessors.expected │ │ │ │ ├── FalseSuccessors.ql │ │ │ │ ├── PopulateRuntimeException.java │ │ │ │ ├── TestSucc.expected │ │ │ │ ├── TestSucc.ql │ │ │ │ └── TestTryWithResources.java │ │ ├── typeaccesses │ │ │ ├── ArrayTypeAccesses.expected │ │ │ ├── ArrayTypeAccesses.ql │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ ├── TypeAccesses.expected │ │ │ ├── TypeAccesses.ql │ │ │ └── typeaccesses │ │ │ │ ├── Arrays.java │ │ │ │ ├── Outer.java │ │ │ │ └── TA.java │ │ ├── typeflow │ │ │ ├── A.java │ │ │ ├── typeflow.expected │ │ │ └── typeflow.ql │ │ ├── types │ │ │ ├── A.java │ │ │ ├── FloatingPointTypes.expected │ │ │ ├── FloatingPointTypes.ql │ │ │ ├── IntegralTypes.expected │ │ │ ├── IntegralTypes.ql │ │ │ ├── NumericTypes.expected │ │ │ └── NumericTypes.ql │ │ ├── unreachableblocks │ │ │ ├── UnreachableBlocks.expected │ │ │ ├── UnreachableBlocks.ql │ │ │ └── unreachableblocks │ │ │ │ └── Unreachable.java │ │ └── varargs │ │ │ ├── PrintAst.expected │ │ │ ├── PrintAst.qlref │ │ │ ├── Varargs.expected │ │ │ ├── Varargs.ql │ │ │ └── varargs │ │ │ └── Test.java │ │ ├── qlpack.yml │ │ ├── queries.xml │ │ ├── query-tests │ │ ├── AlertSuppression │ │ │ ├── .gitattributes │ │ │ ├── AlertSuppression.expected │ │ │ ├── AlertSuppression.qlref │ │ │ ├── AlertSuppressionAnnotations.expected │ │ │ ├── AlertSuppressionAnnotations.qlref │ │ │ ├── Test.java │ │ │ ├── TestSuppressWarnings.java │ │ │ └── TestWindows.java │ │ ├── AutoBoxing │ │ │ ├── AutoBoxing.expected │ │ │ ├── AutoBoxing.qlref │ │ │ └── Test.java │ │ ├── AvoidDeprecatedCallableAccess │ │ │ ├── AvoidDeprecatedCallableAccess.expected │ │ │ ├── AvoidDeprecatedCallableAccess.qlref │ │ │ └── Test.java │ │ ├── BadAbsOfRandom │ │ │ ├── BadAbsOfRandom.expected │ │ │ ├── BadAbsOfRandom.qlref │ │ │ ├── Test.java │ │ │ └── options │ │ ├── BadCheckOdd │ │ │ ├── BadCheckOdd.expected │ │ │ ├── BadCheckOdd.java │ │ │ └── BadCheckOdd.qlref │ │ ├── BoxedVariable │ │ │ ├── BoxedVariable.expected │ │ │ ├── BoxedVariable.java │ │ │ └── BoxedVariable.qlref │ │ ├── BusyWait │ │ │ ├── BusyWait.expected │ │ │ ├── BusyWait.qlref │ │ │ └── BusyWaits.java │ │ ├── CallsToRunnableRun │ │ │ ├── CallsToRunnableRun.expected │ │ │ ├── CallsToRunnableRun.java │ │ │ └── CallsToRunnableRun.qlref │ │ ├── CloseResource │ │ │ └── CloseReader │ │ │ │ ├── CloseReader.expected │ │ │ │ ├── CloseReader.java │ │ │ │ └── CloseReader.qlref │ │ ├── CompareIdenticalValues │ │ │ ├── A.java │ │ │ ├── CompareIdenticalValues.expected │ │ │ └── CompareIdenticalValues.qlref │ │ ├── ComplexCondition │ │ │ ├── ComplexCondition.expected │ │ │ ├── ComplexCondition.java │ │ │ └── ComplexCondition.qlref │ │ ├── ConfusingOverloading │ │ │ ├── ConfusingOverloading.expected │ │ │ ├── ConfusingOverloading.qlref │ │ │ └── TestConfusingOverloading.java │ │ ├── ConstantExpAppearsNonConstant │ │ │ ├── ConstantExpAppearsNonConstant.expected │ │ │ ├── ConstantExpAppearsNonConstant.qlref │ │ │ └── Test.java │ │ ├── ConstantLoopCondition │ │ │ ├── A.java │ │ │ ├── ConstantLoopCondition.expected │ │ │ └── ConstantLoopCondition.qlref │ │ ├── ContainerSizeCmpZero │ │ │ ├── ContainerSizeCmpZero.expected │ │ │ ├── ContainerSizeCmpZero.qlref │ │ │ └── Main.java │ │ ├── ContinueInFalseLoop │ │ │ ├── A.java │ │ │ ├── ContinueInFalseLoop.expected │ │ │ └── ContinueInFalseLoop.qlref │ │ ├── ContradictoryTypeChecks │ │ │ ├── ContradictoryTypeChecks.expected │ │ │ ├── ContradictoryTypeChecks.qlref │ │ │ └── Test.java │ │ ├── DeadCode │ │ │ └── NonAssignedFields │ │ │ │ ├── NonAssignedFields.expected │ │ │ │ ├── NonAssignedFields.qlref │ │ │ │ └── NonAssignedFieldsTest.java │ │ ├── Declarations │ │ │ ├── BreakInSwitchCase.expected │ │ │ ├── BreakInSwitchCase.qlref │ │ │ └── Test.java │ │ ├── DefineEqualsWhenAddingFields │ │ │ ├── A.java │ │ │ ├── B.java │ │ │ ├── DefineEqualsWhenAddingFields.expected │ │ │ ├── DefineEqualsWhenAddingFields.qlref │ │ │ ├── DelegateEq.java │ │ │ ├── Fragment.java │ │ │ ├── I.java │ │ │ ├── MyFragment.java │ │ │ └── RefEq.java │ │ ├── DoubleCheckedLocking │ │ │ ├── A.java │ │ │ ├── DoubleCheckedLocking.expected │ │ │ ├── DoubleCheckedLocking.qlref │ │ │ ├── DoubleCheckedLockingWithInitRace.expected │ │ │ └── DoubleCheckedLockingWithInitRace.qlref │ │ ├── EqualsArray │ │ │ ├── EqualsArray.expected │ │ │ ├── EqualsArray.qlref │ │ │ └── Test.java │ │ ├── EqualsUsesInstanceOf │ │ │ ├── EqualsUsesInstanceOf.expected │ │ │ ├── EqualsUsesInstanceOf.qlref │ │ │ └── Test.java │ │ ├── Finally │ │ │ ├── Finally.java │ │ │ ├── FinallyMayNotComplete.expected │ │ │ └── FinallyMayNotComplete.qlref │ │ ├── HashedButNoHash │ │ │ ├── HashedButNoHash.expected │ │ │ ├── HashedButNoHash.qlref │ │ │ └── Test.java │ │ ├── IgnoreExceptionalReturn │ │ │ ├── IgnoreExceptionalReturn.expected │ │ │ ├── IgnoreExceptionalReturn.qlref │ │ │ └── Test.java │ │ ├── ImpossibleCast │ │ │ ├── ImpossibleCast.expected │ │ │ ├── ImpossibleCast.qlref │ │ │ └── impossible_cast │ │ │ │ └── A.java │ │ ├── InconsistentEqualsHashCode │ │ │ ├── InconsistentEqualsHashCode.expected │ │ │ ├── InconsistentEqualsHashCode.qlref │ │ │ └── Test.java │ │ ├── InconsistentOperations │ │ │ ├── InconsistentCallOnResult.expected │ │ │ ├── InconsistentCallOnResult.qlref │ │ │ ├── Operations.java │ │ │ ├── ReturnValueIgnored.expected │ │ │ ├── ReturnValueIgnored.qlref │ │ │ ├── Test2.java │ │ │ ├── Test3.java │ │ │ ├── Test4.java │ │ │ ├── Test5.java │ │ │ └── Test6.java │ │ ├── InefficientOutputStream │ │ │ ├── InefficientOutputStream.expected │ │ │ ├── InefficientOutputStream.qlref │ │ │ ├── InefficientOutputStreamBad.java │ │ │ └── InefficientOutputStreamGood.java │ │ ├── InnerClassCouldBeStatic │ │ │ ├── Classes.java │ │ │ ├── InnerClassCouldBeStatic.expected │ │ │ ├── InnerClassCouldBeStatic.qlref │ │ │ └── Test.java │ │ ├── Iterable │ │ │ ├── IterableIterator.expected │ │ │ ├── IterableIterator.qlref │ │ │ ├── Test.java │ │ │ ├── WrappedIterator.expected │ │ │ └── WrappedIterator.qlref │ │ ├── IteratorRemoveMayFail │ │ │ ├── IteratorRemoveMayFail.expected │ │ │ ├── IteratorRemoveMayFail.qlref │ │ │ └── Test.java │ │ ├── Javadoc │ │ │ ├── ImpossibleJavadocThrows.expected │ │ │ ├── ImpossibleJavadocThrows.java │ │ │ └── ImpossibleJavadocThrows.qlref │ │ ├── LShiftLargerThanTypeWidth │ │ │ ├── A.java │ │ │ ├── LShiftLargerThanTypeWidth.expected │ │ │ └── LShiftLargerThanTypeWidth.qlref │ │ ├── LazyInitStaticField │ │ │ ├── LazyInitStaticField.expected │ │ │ ├── LazyInitStaticField.qlref │ │ │ └── LazyInits.java │ │ ├── MissedTernaryOpportunity │ │ │ ├── MissedTernaryOpportunity.expected │ │ │ ├── MissedTernaryOpportunity.qlref │ │ │ └── MissedTernaryOpportunityTest.java │ │ ├── MissingCallToSuperClone │ │ │ ├── MissingCallToSuperClone.expected │ │ │ ├── MissingCallToSuperClone.qlref │ │ │ └── Test.java │ │ ├── MissingInstanceofInEquals │ │ │ ├── AlsoGood.java │ │ │ ├── Bad.java │ │ │ ├── Good.java │ │ │ ├── GoodReturn.java │ │ │ ├── MissingInstanceofInEquals.expected │ │ │ └── MissingInstanceofInEquals.qlref │ │ ├── MissingOverrideAnnotation │ │ │ ├── MissingOverrideAnnotation.expected │ │ │ ├── MissingOverrideAnnotation.qlref │ │ │ └── Test.java │ │ ├── MissingSpaceTypo │ │ │ ├── A.java │ │ │ ├── MissingSpaceTypo.expected │ │ │ └── MissingSpaceTypo.qlref │ │ ├── MutualDependency │ │ │ ├── MutualDependency.expected │ │ │ ├── MutualDependency.qlref │ │ │ ├── onepackage │ │ │ │ └── MutualDependency.java │ │ │ └── otherpackage │ │ │ │ └── OtherClass.java │ │ ├── Naming │ │ │ ├── ConfusingOverloading.expected │ │ │ ├── ConfusingOverloading.qlref │ │ │ └── NamingTest.java │ │ ├── NonPrivateField │ │ │ ├── NonPrivateField.expected │ │ │ ├── NonPrivateField.qlref │ │ │ └── NonPrivateFieldTest.java │ │ ├── NonSerializableField │ │ │ ├── NonSerializableField.expected │ │ │ ├── NonSerializableField.qlref │ │ │ └── NonSerializableFieldTest.java │ │ ├── NonSerializableInnerClass │ │ │ ├── NonSerializableInnerClass.expected │ │ │ ├── NonSerializableInnerClass.qlref │ │ │ └── NonSerializableInnerClassTest.java │ │ ├── NonSynchronizedOverride │ │ │ ├── NonSynchronizedOverride.expected │ │ │ ├── NonSynchronizedOverride.qlref │ │ │ └── Test.java │ │ ├── NotifyWithoutSynch │ │ │ ├── NotifyWithoutSynch.expected │ │ │ ├── NotifyWithoutSynch.qlref │ │ │ └── Test.java │ │ ├── Nullness │ │ │ ├── A.java │ │ │ ├── B.java │ │ │ ├── C.java │ │ │ ├── D.java │ │ │ ├── E.java │ │ │ ├── ExprDeref.java │ │ │ ├── F.java │ │ │ ├── NullAlways.expected │ │ │ ├── NullAlways.qlref │ │ │ ├── NullExprDeref.expected │ │ │ ├── NullExprDeref.qlref │ │ │ ├── NullMaybe.expected │ │ │ ├── NullMaybe.qlref │ │ │ └── options │ │ ├── NumberFormatException │ │ │ ├── NumberFormatException.expected │ │ │ ├── NumberFormatException.qlref │ │ │ └── Test.java │ │ ├── PartiallyMaskedCatch │ │ │ ├── PartiallyMaskedCatch.expected │ │ │ ├── PartiallyMaskedCatch.qlref │ │ │ └── PartiallyMaskedCatchTest.java │ │ ├── PointlessForwardingMethod │ │ │ ├── PointlessForwardingMethod.expected │ │ │ ├── PointlessForwardingMethod.qlref │ │ │ └── pointlessforwardingmethod │ │ │ │ └── Test.java │ │ ├── PrintLnArray │ │ │ ├── PrintLn.expected │ │ │ ├── PrintLn.qlref │ │ │ └── Test.java │ │ ├── RandomUsedOnce │ │ │ ├── RandomUsedOnce.expected │ │ │ ├── RandomUsedOnce.qlref │ │ │ └── Test.java │ │ ├── RangeAnalysis │ │ │ ├── A.java │ │ │ ├── ArrayIndexOutOfBounds.expected │ │ │ ├── ArrayIndexOutOfBounds.qlref │ │ │ └── options │ │ ├── ReadOnlyContainer │ │ │ ├── ReadOnlyContainer.expected │ │ │ ├── ReadOnlyContainer.qlref │ │ │ └── Test.java │ │ ├── ReturnValueIgnored │ │ │ ├── ReturnValueIgnored.expected │ │ │ ├── ReturnValueIgnored.qlref │ │ │ └── return_value_ignored │ │ │ │ └── Test.java │ │ ├── SelfAssignment │ │ │ ├── SelfAssignment.expected │ │ │ ├── SelfAssignment.qlref │ │ │ └── Test.java │ │ ├── SimplifyBoolExpr │ │ │ ├── SimplifyBoolExpr.expected │ │ │ ├── SimplifyBoolExpr.java │ │ │ └── SimplifyBoolExpr.qlref │ │ ├── SpuriousJavadocParam │ │ │ ├── Test.java │ │ │ ├── test.expected │ │ │ └── test.qlref │ │ ├── StartInConstructor │ │ │ ├── StartInConstructor.expected │ │ │ ├── StartInConstructor.qlref │ │ │ └── Test.java │ │ ├── StaticArray │ │ │ ├── StaticArray.expected │ │ │ ├── StaticArray.java │ │ │ └── StaticArray.qlref │ │ ├── StringComparison │ │ │ ├── StringComparison.expected │ │ │ ├── StringComparison.java │ │ │ └── StringComparison.qlref │ │ ├── StringFormat │ │ │ ├── A.java │ │ │ ├── MissingFormatArg.expected │ │ │ ├── MissingFormatArg.qlref │ │ │ ├── UnusedFormatArg.expected │ │ │ ├── UnusedFormatArg.qlref │ │ │ └── options │ │ ├── SuspiciousDateFormat │ │ │ ├── A.java │ │ │ ├── SuspiciousDateFormat.expected │ │ │ └── SuspiciousDateFormat.qlref │ │ ├── SynchSetUnsynchGet │ │ │ ├── SynchSetUnsynchSet.expected │ │ │ ├── SynchSetUnsynchSet.qlref │ │ │ └── Test.java │ │ ├── TypeMismatch │ │ │ ├── IncomparableEquals.expected │ │ │ ├── IncomparableEquals.qlref │ │ │ ├── RemoveTypeMismatch.expected │ │ │ ├── RemoveTypeMismatch.qlref │ │ │ ├── incomparable_equals │ │ │ │ ├── A.java │ │ │ │ ├── B.java │ │ │ │ ├── C.java │ │ │ │ ├── D.java │ │ │ │ ├── E.java │ │ │ │ ├── F.java │ │ │ │ ├── MyEntry.java │ │ │ │ └── Test.java │ │ │ └── remove_type_mismatch │ │ │ │ ├── A.java │ │ │ │ └── B.java │ │ ├── UnreadLocal │ │ │ ├── A.java │ │ │ ├── DeadStoreOfLocal.expected │ │ │ ├── DeadStoreOfLocal.qlref │ │ │ ├── DeadStoreOfLocalUnread.expected │ │ │ ├── DeadStoreOfLocalUnread.qlref │ │ │ ├── UnreadLocal.expected │ │ │ ├── UnreadLocal.qlref │ │ │ └── UnreadLocal │ │ │ │ ├── ImplicitReads.java │ │ │ │ └── UnreadLocals.java │ │ ├── UnreleasedLock │ │ │ ├── UnreleasedLock.expected │ │ │ ├── UnreleasedLock.java │ │ │ └── UnreleasedLock.qlref │ │ ├── UseBraces │ │ │ ├── UseBraces.expected │ │ │ ├── UseBraces.java │ │ │ └── UseBraces.qlref │ │ ├── UselessComparisonTest │ │ │ ├── A.java │ │ │ ├── B.java │ │ │ ├── C.java │ │ │ ├── Test.java │ │ │ ├── UselessComparisonTest.expected │ │ │ └── UselessComparisonTest.qlref │ │ ├── UselessNullCheck │ │ │ ├── A.java │ │ │ ├── UselessNullCheck.expected │ │ │ └── UselessNullCheck.qlref │ │ ├── UselessUpcast │ │ │ ├── A.java │ │ │ ├── Test.java │ │ │ ├── Test2.java │ │ │ ├── UselessUpcast.expected │ │ │ └── UselessUpcast.qlref │ │ ├── WhitespaceContradictsPrecedence │ │ │ ├── WhitespaceContradictsPrecedence.expected │ │ │ ├── WhitespaceContradictsPrecedence.java │ │ │ └── WhitespaceContradictsPrecedence.qlref │ │ ├── WriteOnlyContainer │ │ │ ├── CollectionTest.java │ │ │ ├── MapTest.java │ │ │ ├── WriteOnlyContainer.expected │ │ │ └── WriteOnlyContainer.qlref │ │ ├── WrongNanComparison │ │ │ ├── Test.java │ │ │ ├── WrongNanComparison.expected │ │ │ └── WrongNanComparison.qlref │ │ ├── dead-code │ │ │ ├── DeadCallable │ │ │ │ ├── DeadCallable.expected │ │ │ │ ├── DeadCallable.qlref │ │ │ │ └── Main.java │ │ │ ├── DeadClass │ │ │ │ ├── AnnotationTest.java │ │ │ │ ├── DeadClass.expected │ │ │ │ ├── DeadClass.qlref │ │ │ │ ├── DeadEnumTest.java │ │ │ │ ├── ExternalDeadCodeCycle.java │ │ │ │ ├── ExternalDeadRoot.java │ │ │ │ ├── InternalDeadCodeCycle.java │ │ │ │ └── NamespaceTest.java │ │ │ ├── DeadEnumConstant │ │ │ │ ├── DeadEnumConstant.expected │ │ │ │ ├── DeadEnumConstant.qlref │ │ │ │ └── DeadEnumConstantTest.java │ │ │ ├── DeadField │ │ │ │ ├── AnnotationValueTest.java │ │ │ │ ├── AnnotationValueUtil.java │ │ │ │ ├── BasicTest.java │ │ │ │ ├── DeadField.expected │ │ │ │ ├── DeadField.qlref │ │ │ │ └── ReflectionTest.java │ │ │ ├── DeadMethod │ │ │ │ ├── ArbitraryXMLLiveness.java │ │ │ │ ├── DeadMethod.expected │ │ │ │ ├── DeadMethod.qlref │ │ │ │ ├── DefaultConstructorTest.java │ │ │ │ ├── InternalDeadCodeCycle.java │ │ │ │ ├── JMXTest.java │ │ │ │ ├── ReflectionMethodTest.java │ │ │ │ ├── ReflectionTest.java │ │ │ │ ├── SuppressedConstructorTest.java │ │ │ │ └── arbitrary.xml │ │ │ └── UselessParameter │ │ │ │ ├── Test.java │ │ │ │ ├── UselessParameter.expected │ │ │ │ └── UselessParameter.qlref │ │ ├── definitions │ │ │ ├── Test.java │ │ │ ├── definitions.expected │ │ │ └── definitions.qlref │ │ ├── lgtm-example-queries │ │ │ ├── Test.java │ │ │ ├── arrayaccess.expected │ │ │ ├── arrayaccess.ql │ │ │ ├── returnstatement.expected │ │ │ ├── returnstatement.ql │ │ │ ├── voidreturntype.expected │ │ │ └── voidreturntype.ql │ │ ├── maven-dependencies │ │ │ ├── .gitignore │ │ │ ├── .m2 │ │ │ │ └── repository │ │ │ │ │ ├── readme.txt │ │ │ │ │ └── semmle-test │ │ │ │ │ └── semmle-test │ │ │ │ │ └── 1.0 │ │ │ │ │ ├── pom.xml │ │ │ │ │ └── semmle-test-1.0.jar │ │ │ ├── DependencyVersions.expected │ │ │ ├── DependencyVersions.ql │ │ │ ├── MavenDeps.expected │ │ │ ├── MavenDeps.ql │ │ │ ├── MavenPoms.expected │ │ │ ├── MavenPoms.ql │ │ │ ├── UnusedMavenDependencyBinary.expected │ │ │ ├── UnusedMavenDependencyBinary.qlref │ │ │ ├── UnusedMavenDependencySource.expected │ │ │ ├── UnusedMavenDependencySource.qlref │ │ │ ├── another-project │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── Library.java │ │ │ ├── my-project │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── java │ │ │ │ │ └── Test.java │ │ │ └── pom.xml │ │ └── security │ │ │ ├── CWE-022 │ │ │ └── semmle │ │ │ │ └── tests │ │ │ │ ├── TaintedPath.expected │ │ │ │ ├── TaintedPath.qlref │ │ │ │ ├── Test.java │ │ │ │ ├── ZipSlip.expected │ │ │ │ ├── ZipSlip.qlref │ │ │ │ └── ZipTest.java │ │ │ ├── CWE-078 │ │ │ ├── ExecRelative.expected │ │ │ ├── ExecRelative.qlref │ │ │ ├── ExecTaintedLocal.expected │ │ │ ├── ExecTaintedLocal.qlref │ │ │ ├── ExecUnescaped.expected │ │ │ ├── ExecUnescaped.qlref │ │ │ └── Test.java │ │ │ ├── CWE-079 │ │ │ └── semmle │ │ │ │ └── tests │ │ │ │ ├── WebsocketXss.java │ │ │ │ ├── XSS.expected │ │ │ │ ├── XSS.java │ │ │ │ ├── XSS.qlref │ │ │ │ └── options │ │ │ ├── CWE-089 │ │ │ └── semmle │ │ │ │ └── examples │ │ │ │ ├── Mongo.java │ │ │ │ ├── SqlTaintedLocal.expected │ │ │ │ ├── SqlTaintedLocal.qlref │ │ │ │ ├── SqlUnescaped.expected │ │ │ │ ├── SqlUnescaped.qlref │ │ │ │ ├── Test.java │ │ │ │ ├── ValidatedVariable.expected │ │ │ │ ├── ValidatedVariable.ql │ │ │ │ ├── Validation.java │ │ │ │ ├── controlledString.expected │ │ │ │ ├── controlledString.ql │ │ │ │ ├── endsInQuote.expected │ │ │ │ ├── endsInQuote.ql │ │ │ │ ├── getAnAppend.expected │ │ │ │ ├── getAnAppend.ql │ │ │ │ ├── getToStringCall.expected │ │ │ │ ├── getToStringCall.ql │ │ │ │ ├── options │ │ │ │ ├── sbQuery.expected │ │ │ │ ├── sbQuery.ql │ │ │ │ ├── taintedString.expected │ │ │ │ ├── taintedString.ql │ │ │ │ ├── validationMethod.expected │ │ │ │ └── validationMethod.ql │ │ │ ├── CWE-090 │ │ │ ├── LdapInjection.expected │ │ │ ├── LdapInjection.java │ │ │ ├── LdapInjection.qlref │ │ │ └── options │ │ │ ├── CWE-094 │ │ │ ├── InsecureBeanValidation.expected │ │ │ ├── InsecureBeanValidation.java │ │ │ ├── InsecureBeanValidation.qlref │ │ │ └── options │ │ │ ├── CWE-1104 │ │ │ └── semmle │ │ │ │ └── tests │ │ │ │ ├── A.java │ │ │ │ ├── MavenPomDependsOnBintray.expected │ │ │ │ ├── MavenPomDependsOnBintray.qlref │ │ │ │ └── bad-bintray-pom.xml │ │ │ ├── CWE-113 │ │ │ └── semmle │ │ │ │ └── tests │ │ │ │ ├── ResponseSplitting.expected │ │ │ │ ├── ResponseSplitting.java │ │ │ │ ├── ResponseSplitting.qlref │ │ │ │ └── options │ │ │ ├── CWE-129 │ │ │ └── semmle │ │ │ │ └── tests │ │ │ │ ├── ImproperValidationOfArrayConstructionCodeSpecified.expected │ │ │ │ ├── ImproperValidationOfArrayConstructionCodeSpecified.qlref │ │ │ │ ├── ImproperValidationOfArrayConstructionLocal.expected │ │ │ │ ├── ImproperValidationOfArrayConstructionLocal.qlref │ │ │ │ ├── ImproperValidationOfArrayIndexCodeSpecified.expected │ │ │ │ ├── ImproperValidationOfArrayIndexCodeSpecified.qlref │ │ │ │ ├── ImproperValidationOfArrayIndexLocal.expected │ │ │ │ ├── ImproperValidationOfArrayIndexLocal.qlref │ │ │ │ ├── Test.java │ │ │ │ └── options │ │ │ ├── CWE-134 │ │ │ └── semmle │ │ │ │ └── tests │ │ │ │ ├── ExternallyControlledFormatString.expected │ │ │ │ ├── ExternallyControlledFormatString.qlref │ │ │ │ ├── ExternallyControlledFormatStringLocal.expected │ │ │ │ ├── ExternallyControlledFormatStringLocal.qlref │ │ │ │ ├── Test.java │ │ │ │ └── options │ │ │ ├── CWE-190 │ │ │ └── semmle │ │ │ │ └── tests │ │ │ │ ├── ArithmeticTainted.java │ │ │ │ ├── ArithmeticTaintedLocal.expected │ │ │ │ ├── ArithmeticTaintedLocal.qlref │ │ │ │ ├── ArithmeticUncontrolled.expected │ │ │ │ ├── ArithmeticUncontrolled.qlref │ │ │ │ ├── ArithmeticWithExtremeValues.expected │ │ │ │ ├── ArithmeticWithExtremeValues.qlref │ │ │ │ ├── Holder.java │ │ │ │ ├── InformationLoss.expected │ │ │ │ ├── InformationLoss.qlref │ │ │ │ ├── IntMultToLong.expected │ │ │ │ ├── IntMultToLong.qlref │ │ │ │ ├── Test.java │ │ │ │ ├── Test2.java │ │ │ │ └── options │ │ │ ├── CWE-209 │ │ │ └── semmle │ │ │ │ └── tests │ │ │ │ ├── StackTraceExposure.expected │ │ │ │ ├── StackTraceExposure.qlref │ │ │ │ ├── Test.java │ │ │ │ └── options │ │ │ ├── CWE-297 │ │ │ ├── UnsafeHostnameVerification.expected │ │ │ ├── UnsafeHostnameVerification.java │ │ │ └── UnsafeHostnameVerification.qlref │ │ │ ├── CWE-311 │ │ │ ├── CWE-319 │ │ │ │ ├── Test.java │ │ │ │ ├── UseSSL.expected │ │ │ │ └── UseSSL.qlref │ │ │ └── CWE-614 │ │ │ │ └── semmle │ │ │ │ └── tests │ │ │ │ ├── InsecureCookie.expected │ │ │ │ ├── InsecureCookie.qlref │ │ │ │ ├── Test.java │ │ │ │ └── options │ │ │ ├── CWE-327 │ │ │ └── semmle │ │ │ │ └── tests │ │ │ │ ├── BrokenCryptoAlgorithm.expected │ │ │ │ ├── BrokenCryptoAlgorithm.qlref │ │ │ │ ├── MaybeBrokenCryptoAlgorithm.expected │ │ │ │ ├── MaybeBrokenCryptoAlgorithm.qlref │ │ │ │ └── Test.java │ │ │ ├── CWE-335 │ │ │ └── semmle │ │ │ │ └── tests │ │ │ │ ├── PredictableSeed.expected │ │ │ │ ├── PredictableSeed.qlref │ │ │ │ └── Test.java │ │ │ ├── CWE-338 │ │ │ └── semmle │ │ │ │ └── tests │ │ │ │ ├── JHipsterGeneratedPRNG.expected │ │ │ │ ├── JHipsterGeneratedPRNG.qlref │ │ │ │ ├── fixed │ │ │ │ └── RandomUtil.java │ │ │ │ ├── options │ │ │ │ └── vulnerable │ │ │ │ └── RandomUtil.java │ │ │ ├── CWE-367 │ │ │ └── semmle │ │ │ │ └── tests │ │ │ │ ├── TOCTOURace.expected │ │ │ │ ├── TOCTOURace.qlref │ │ │ │ └── Test.java │ │ │ ├── CWE-421 │ │ │ └── semmle │ │ │ │ ├── SocketAuthRace.expected │ │ │ │ ├── SocketAuthRace.qlref │ │ │ │ ├── Test.java │ │ │ │ └── options │ │ │ ├── CWE-502 │ │ │ ├── A.java │ │ │ ├── B.java │ │ │ ├── TestMessageBodyReader.java │ │ │ ├── UnsafeDeserialization.expected │ │ │ ├── UnsafeDeserialization.qlref │ │ │ └── options │ │ │ ├── CWE-601 │ │ │ └── semmle │ │ │ │ └── tests │ │ │ │ ├── UrlRedirect.expected │ │ │ │ ├── UrlRedirect.java │ │ │ │ ├── UrlRedirect.qlref │ │ │ │ └── options │ │ │ ├── CWE-611 │ │ │ ├── DocumentBuilderTests.java │ │ │ ├── SAXBuilderTests.java │ │ │ ├── SAXParserTests.java │ │ │ ├── SAXReaderTests.java │ │ │ ├── SchemaTests.java │ │ │ ├── SimpleXMLTests.java │ │ │ ├── TransformerTests.java │ │ │ ├── XMLReaderTests.java │ │ │ ├── XPathExpressionTests.java │ │ │ ├── XXE.expected │ │ │ ├── XXE.qlref │ │ │ ├── XmlInputFactoryTests.java │ │ │ └── options │ │ │ ├── CWE-676 │ │ │ └── semmle │ │ │ │ └── tests │ │ │ │ ├── PotentiallyDangerousFunction.expected │ │ │ │ ├── PotentiallyDangerousFunction.qlref │ │ │ │ └── Test.java │ │ │ ├── CWE-681 │ │ │ └── semmle │ │ │ │ └── tests │ │ │ │ ├── NumericCastTaintedLocal.expected │ │ │ │ ├── NumericCastTaintedLocal.qlref │ │ │ │ └── Test.java │ │ │ ├── CWE-732 │ │ │ └── semmle │ │ │ │ └── tests │ │ │ │ ├── ReadingFromWorldWritableFile.expected │ │ │ │ ├── ReadingFromWorldWritableFile.qlref │ │ │ │ └── Test.java │ │ │ ├── CWE-798 │ │ │ └── semmle │ │ │ │ └── tests │ │ │ │ ├── CredentialsTest.java │ │ │ │ ├── FileCredentialTest.java │ │ │ │ ├── HardcodedAWSCredentials.java │ │ │ │ ├── HardcodedCredentialsApiCall.expected │ │ │ │ ├── HardcodedCredentialsApiCall.qlref │ │ │ │ ├── HardcodedCredentialsComparison.expected │ │ │ │ ├── HardcodedCredentialsComparison.qlref │ │ │ │ ├── HardcodedCredentialsSourceCall.expected │ │ │ │ ├── HardcodedCredentialsSourceCall.qlref │ │ │ │ ├── HardcodedPasswordField.expected │ │ │ │ ├── HardcodedPasswordField.qlref │ │ │ │ ├── Test.java │ │ │ │ ├── User.java │ │ │ │ └── options │ │ │ ├── CWE-807 │ │ │ └── semmle │ │ │ │ └── tests │ │ │ │ ├── ConditionalBypass.expected │ │ │ │ ├── ConditionalBypass.qlref │ │ │ │ ├── TaintedPermissionsCheck.expected │ │ │ │ ├── TaintedPermissionsCheck.qlref │ │ │ │ ├── Test.java │ │ │ │ └── options │ │ │ ├── CWE-829 │ │ │ └── semmle │ │ │ │ └── tests │ │ │ │ ├── A.java │ │ │ │ ├── InsecureDependencyResolution.expected │ │ │ │ ├── InsecureDependencyResolution.qlref │ │ │ │ ├── insecure-pom.xml │ │ │ │ └── secure-pom.xml │ │ │ ├── CWE-833 │ │ │ └── semmle │ │ │ │ └── tests │ │ │ │ ├── LockOrderInconsistency.expected │ │ │ │ ├── LockOrderInconsistency.qlref │ │ │ │ ├── MethodAccessLockOrder.java │ │ │ │ ├── ReentrantLockOrder.java │ │ │ │ └── SynchronizedStmtLockOrder.java │ │ │ └── CWE-835 │ │ │ └── semmle │ │ │ └── tests │ │ │ ├── InfiniteLoop.expected │ │ │ ├── InfiniteLoop.java │ │ │ └── InfiniteLoop.qlref │ │ └── stubs │ │ ├── README.md │ │ ├── akka-2.6.x │ │ └── akka │ │ │ └── util │ │ │ └── ByteString.java │ │ ├── amazon-aws-sdk-1.11.700 │ │ ├── LICENSE.txt │ │ └── com │ │ │ └── amazonaws │ │ │ └── auth │ │ │ ├── AWSCredentials.java │ │ │ └── BasicAWSCredentials.java │ │ ├── android │ │ └── android │ │ │ ├── content │ │ │ ├── ContentProvider.java │ │ │ ├── ContentResolver.java │ │ │ ├── ContentValues.java │ │ │ └── Context.java │ │ │ ├── database │ │ │ ├── Cursor.java │ │ │ ├── DatabaseUtils.java │ │ │ └── sqlite │ │ │ │ ├── SQLiteDatabase.java │ │ │ │ └── SQLiteQueryBuilder.java │ │ │ ├── net │ │ │ └── Uri.java │ │ │ └── os │ │ │ ├── CancellationSignal.java │ │ │ └── ParcelFileDescriptor.java │ │ ├── apache-commons-codec-1.14 │ │ ├── LICENSE.txt │ │ └── org │ │ │ └── apache │ │ │ └── commons │ │ │ └── codec │ │ │ ├── BinaryDecoder.java │ │ │ ├── BinaryEncoder.java │ │ │ ├── Decoder.java │ │ │ ├── DecoderException.java │ │ │ ├── Encoder.java │ │ │ ├── EncoderException.java │ │ │ ├── StringDecoder.java │ │ │ └── StringEncoder.java │ │ ├── apache-commons-email-1.6.0 │ │ ├── LICENSE.txt │ │ └── org │ │ │ └── apache │ │ │ └── commons │ │ │ └── mail │ │ │ ├── DefaultAuthenticator.java │ │ │ ├── Email.java │ │ │ ├── EmailException.java │ │ │ └── SimpleEmail.java │ │ ├── apache-commons-io-2.6 │ │ ├── LICENSE.txt │ │ └── org │ │ │ └── apache │ │ │ └── commons │ │ │ └── io │ │ │ └── IOUtils.java │ │ ├── apache-commons-jexl-2.1.1 │ │ └── org │ │ │ └── apache │ │ │ └── commons │ │ │ └── jexl2 │ │ │ ├── DebugInfo.java │ │ │ ├── Expression.java │ │ │ ├── JexlContext.java │ │ │ ├── JexlEngine.java │ │ │ ├── JexlInfo.java │ │ │ ├── MapContext.java │ │ │ ├── Script.java │ │ │ ├── UnifiedJEXL.java │ │ │ └── introspection │ │ │ ├── Sandbox.java │ │ │ ├── SandboxUberspectImpl.java │ │ │ └── Uberspect.java │ │ ├── apache-commons-jexl-3.1 │ │ └── org │ │ │ └── apache │ │ │ └── commons │ │ │ └── jexl3 │ │ │ ├── JexlBuilder.java │ │ │ ├── JexlContext.java │ │ │ ├── JexlEngine.java │ │ │ ├── JexlExpression.java │ │ │ ├── JexlInfo.java │ │ │ ├── JexlScript.java │ │ │ ├── JxltEngine.java │ │ │ ├── MapContext.java │ │ │ └── introspection │ │ │ ├── JexlSandbox.java │ │ │ └── JexlUberspect.java │ │ ├── apache-commons-lang3-3.7 │ │ ├── LICENSE.txt │ │ └── org │ │ │ └── apache │ │ │ └── commons │ │ │ └── lang3 │ │ │ ├── ArrayUtils.java │ │ │ ├── ObjectUtils.java │ │ │ ├── RandomStringUtils.java │ │ │ ├── RandomUtils.java │ │ │ ├── RegExUtils.java │ │ │ ├── StringUtils.java │ │ │ ├── builder │ │ │ └── Builder.java │ │ │ └── text │ │ │ ├── StrBuilder.java │ │ │ ├── StrLookup.java │ │ │ ├── StrMatcher.java │ │ │ ├── StrSubstitutor.java │ │ │ ├── StrTokenizer.java │ │ │ └── WordUtils.java │ │ ├── apache-commons-text-1.9 │ │ └── org │ │ │ └── apache │ │ │ └── commons │ │ │ └── text │ │ │ ├── Builder.java │ │ │ ├── StrBuilder.java │ │ │ ├── StrMatcher.java │ │ │ ├── StrTokenizer.java │ │ │ ├── StringSubstitutor.java │ │ │ ├── StringTokenizer.java │ │ │ ├── TextStringBuilder.java │ │ │ ├── WordUtils.java │ │ │ ├── lookup │ │ │ ├── BiStringLookup.java │ │ │ ├── StringLookup.java │ │ │ └── StringLookupFactory.java │ │ │ └── matcher │ │ │ └── StringMatcher.java │ │ ├── apache-http-4.4.13 │ │ └── org │ │ │ └── apache │ │ │ └── http │ │ │ ├── Header.java │ │ │ ├── HeaderElement.java │ │ │ ├── HeaderElementIterator.java │ │ │ ├── HeaderIterator.java │ │ │ ├── HttpEntity.java │ │ │ ├── HttpEntityEnclosingRequest.java │ │ │ ├── HttpMessage.java │ │ │ ├── HttpRequest.java │ │ │ ├── HttpResponse.java │ │ │ ├── NameValuePair.java │ │ │ ├── ParseException.java │ │ │ ├── ProtocolVersion.java │ │ │ ├── RequestLine.java │ │ │ ├── client │ │ │ └── methods │ │ │ │ ├── HttpEntityEnclosingRequestBase.java │ │ │ │ ├── HttpGet.java │ │ │ │ ├── HttpPost.java │ │ │ │ ├── HttpPut.java │ │ │ │ └── HttpRequestBase.java │ │ │ ├── entity │ │ │ ├── AbstractHttpEntity.java │ │ │ ├── ByteArrayEntity.java │ │ │ ├── ContentType.java │ │ │ └── StringEntity.java │ │ │ ├── message │ │ │ ├── AbstractHttpMessage.java │ │ │ ├── BasicHeader.java │ │ │ ├── BasicHttpEntityEnclosingRequest.java │ │ │ ├── BasicHttpRequest.java │ │ │ └── BasicRequestLine.java │ │ │ ├── params │ │ │ └── HttpParams.java │ │ │ ├── protocol │ │ │ ├── HttpContext.java │ │ │ └── HttpRequestHandler.java │ │ │ └── util │ │ │ ├── Args.java │ │ │ ├── ByteArrayBuffer.java │ │ │ ├── ByteBuffer.java │ │ │ ├── CharArrayBuffer.java │ │ │ └── EntityUtils.java │ │ ├── apache-http-5 │ │ └── org │ │ │ └── apache │ │ │ └── hc │ │ │ └── core5 │ │ │ ├── function │ │ │ └── Supplier.java │ │ │ ├── http │ │ │ ├── ClassicHttpRequest.java │ │ │ ├── ClassicHttpResponse.java │ │ │ ├── ContentType.java │ │ │ ├── EntityDetails.java │ │ │ ├── Header.java │ │ │ ├── HttpEntity.java │ │ │ ├── HttpEntityContainer.java │ │ │ ├── HttpException.java │ │ │ ├── HttpMessage.java │ │ │ ├── HttpRequest.java │ │ │ ├── HttpResponse.java │ │ │ ├── MessageHeaders.java │ │ │ ├── NameValuePair.java │ │ │ ├── ParseException.java │ │ │ ├── ProtocolException.java │ │ │ ├── ProtocolVersion.java │ │ │ ├── io │ │ │ │ ├── HttpRequestHandler.java │ │ │ │ ├── HttpServerRequestHandler.java │ │ │ │ └── entity │ │ │ │ │ ├── AbstractHttpEntity.java │ │ │ │ │ ├── ByteArrayEntity.java │ │ │ │ │ ├── ByteBufferEntity.java │ │ │ │ │ ├── EntityUtils.java │ │ │ │ │ ├── HttpEntities.java │ │ │ │ │ └── StringEntity.java │ │ │ ├── message │ │ │ │ ├── BasicHeader.java │ │ │ │ └── RequestLine.java │ │ │ └── protocol │ │ │ │ └── HttpContext.java │ │ │ ├── io │ │ │ └── IOCallback.java │ │ │ ├── net │ │ │ └── URIAuthority.java │ │ │ └── util │ │ │ ├── Args.java │ │ │ ├── ByteArrayBuffer.java │ │ │ └── CharArrayBuffer.java │ │ ├── apache-ldap-1.0.2 │ │ └── org │ │ │ └── apache │ │ │ └── directory │ │ │ ├── api │ │ │ └── ldap │ │ │ │ └── model │ │ │ │ ├── cursor │ │ │ │ ├── EntryCursor.java │ │ │ │ └── SearchCursor.java │ │ │ │ ├── entry │ │ │ │ └── Value.java │ │ │ │ ├── exception │ │ │ │ ├── LdapException.java │ │ │ │ └── LdapInvalidDnException.java │ │ │ │ ├── filter │ │ │ │ ├── EqualityNode.java │ │ │ │ └── ExprNode.java │ │ │ │ ├── message │ │ │ │ ├── SearchRequest.java │ │ │ │ ├── SearchRequestImpl.java │ │ │ │ └── SearchScope.java │ │ │ │ └── name │ │ │ │ └── Dn.java │ │ │ └── ldap │ │ │ └── client │ │ │ └── api │ │ │ ├── LdapConnection.java │ │ │ └── LdapNetworkConnection.java │ │ ├── commons-exec-1.3 │ │ └── org │ │ │ └── apache │ │ │ └── commons │ │ │ └── exec │ │ │ ├── CommandLine.java │ │ │ └── DefaultExecutor.java │ │ ├── dom4j-2.1.1 │ │ └── org │ │ │ └── dom4j │ │ │ ├── Document.java │ │ │ └── io │ │ │ └── SAXReader.java │ │ ├── ejb-3.2 │ │ └── javax │ │ │ ├── ejb │ │ │ ├── CreateException.java │ │ │ ├── EJB.java │ │ │ ├── EJBContext.java │ │ │ ├── EJBException.java │ │ │ ├── EJBHome.java │ │ │ ├── EJBLocalHome.java │ │ │ ├── EJBLocalObject.java │ │ │ ├── EJBMetaData.java │ │ │ ├── EJBObject.java │ │ │ ├── EnterpriseBean.java │ │ │ ├── EntityBean.java │ │ │ ├── Handle.java │ │ │ ├── Handler.java │ │ │ ├── HomeHandle.java │ │ │ ├── Remote.java │ │ │ ├── RemoveException.java │ │ │ ├── SessionBean.java │ │ │ └── SessionContext.java │ │ │ └── transaction │ │ │ └── UserTransaction.java │ │ ├── esapi-2.0.1 │ │ └── org │ │ │ └── owasp │ │ │ └── esapi │ │ │ ├── Encoder.java │ │ │ └── reference │ │ │ └── DefaultEncoder.java │ │ ├── fastjson-1.2.74 │ │ └── com │ │ │ └── alibaba │ │ │ └── fastjson │ │ │ ├── JSON.java │ │ │ ├── JSONArray.java │ │ │ ├── JSONObject.java │ │ │ ├── TypeReference.java │ │ │ └── parser │ │ │ ├── Feature.java │ │ │ ├── ParserConfig.java │ │ │ └── deserializer │ │ │ └── ParseProcess.java │ │ ├── google-android-9.0.0 │ │ ├── android │ │ │ ├── app │ │ │ │ └── Activity.java │ │ │ ├── content │ │ │ │ ├── BroadcastReceiver.java │ │ │ │ ├── Context.java │ │ │ │ ├── Intent.java │ │ │ │ └── SharedPreferences.java │ │ │ ├── net │ │ │ │ └── Uri.java │ │ │ ├── os │ │ │ │ ├── BaseBundle.java │ │ │ │ ├── Bundle.java │ │ │ │ ├── Parcel.java │ │ │ │ └── Parcelable.java │ │ │ ├── view │ │ │ │ └── View.java │ │ │ └── webkit │ │ │ │ ├── WebResourceRequest.java │ │ │ │ ├── WebResourceResponse.java │ │ │ │ ├── WebSettings.java │ │ │ │ ├── WebView.java │ │ │ │ └── WebViewClient.java │ │ └── androidx │ │ │ └── security │ │ │ └── crypto │ │ │ ├── EncryptedSharedPreferences.java │ │ │ └── MasterKey.java │ │ ├── guava-30.0 │ │ ├── com │ │ │ └── google │ │ │ │ └── common │ │ │ │ ├── base │ │ │ │ ├── Function.java │ │ │ │ ├── Joiner.java │ │ │ │ ├── Optional.java │ │ │ │ ├── Preconditions.java │ │ │ │ ├── Predicate.java │ │ │ │ ├── Splitter.java │ │ │ │ ├── Strings.java │ │ │ │ └── Supplier.java │ │ │ │ ├── collect │ │ │ │ ├── AbstractMultimap.java │ │ │ │ ├── AbstractTable.java │ │ │ │ ├── ImmutableCollection.java │ │ │ │ ├── ImmutableList.java │ │ │ │ ├── ImmutableMap.java │ │ │ │ ├── ImmutableMultimap.java │ │ │ │ ├── ImmutableMultiset.java │ │ │ │ ├── ImmutableSet.java │ │ │ │ ├── ImmutableSortedMap.java │ │ │ │ ├── ImmutableSortedSet.java │ │ │ │ ├── ImmutableTable.java │ │ │ │ ├── Multimap.java │ │ │ │ ├── Multiset.java │ │ │ │ ├── Sets.java │ │ │ │ └── Table.java │ │ │ │ ├── graph │ │ │ │ ├── SuccessorsFunction.java │ │ │ │ └── Traverser.java │ │ │ │ ├── hash │ │ │ │ ├── Funnel.java │ │ │ │ ├── HashCode.java │ │ │ │ ├── HashFunction.java │ │ │ │ ├── Hasher.java │ │ │ │ └── PrimitiveSink.java │ │ │ │ └── io │ │ │ │ ├── BaseEncoding.java │ │ │ │ ├── ByteArrayDataInput.java │ │ │ │ ├── ByteArrayDataOutput.java │ │ │ │ ├── ByteProcessor.java │ │ │ │ ├── ByteSink.java │ │ │ │ ├── ByteSource.java │ │ │ │ ├── ByteStreams.java │ │ │ │ ├── CharSink.java │ │ │ │ ├── CharSource.java │ │ │ │ ├── CharStreams.java │ │ │ │ ├── Closer.java │ │ │ │ ├── CountingInputStream.java │ │ │ │ ├── FileWriteMode.java │ │ │ │ ├── Files.java │ │ │ │ ├── LineProcessor.java │ │ │ │ ├── LineReader.java │ │ │ │ ├── LittleEndianDataInputStream.java │ │ │ │ ├── MoreFiles.java │ │ │ │ └── RecursiveDeleteOption.java │ │ └── org │ │ │ └── checkerframework │ │ │ └── checker │ │ │ └── nullness │ │ │ └── qual │ │ │ ├── NonNull.java │ │ │ └── Nullable.java │ │ ├── guice-4.2.2 │ │ └── com │ │ │ └── google │ │ │ └── inject │ │ │ └── Provider.java │ │ ├── guice-servlet-4.2.2 │ │ └── com │ │ │ └── google │ │ │ └── inject │ │ │ └── servlet │ │ │ └── RequestParameters.java │ │ ├── hamcrest-2.2 │ │ ├── LICENSE.txt │ │ └── org │ │ │ └── hamcrest │ │ │ ├── MatcherAssert.java │ │ │ └── core │ │ │ └── IsNull.java │ │ ├── j2objc │ │ ├── LICENSE │ │ └── com │ │ │ └── google │ │ │ └── j2objc │ │ │ └── security │ │ │ └── IosRSASignature.java │ │ ├── jackson-databind-2.10 │ │ ├── com │ │ │ └── fasterxml │ │ │ │ └── jackson │ │ │ │ ├── core │ │ │ │ ├── JsonEncoding.java │ │ │ │ ├── JsonFactory.java │ │ │ │ └── JsonGenerator.java │ │ │ │ └── databind │ │ │ │ ├── JsonNode.java │ │ │ │ ├── ObjectMapper.java │ │ │ │ └── ObjectWriter.java │ │ └── jackson-LICENSE.txt │ │ ├── javamail-api-1.6.2 │ │ ├── LICENSE.txt │ │ └── javax │ │ │ └── mail │ │ │ ├── Authenticator.java │ │ │ ├── PasswordAuthentication.java │ │ │ └── Session.java │ │ ├── jdom-1.1.3 │ │ └── org │ │ │ └── jdom │ │ │ ├── Document.java │ │ │ └── input │ │ │ └── SAXBuilder.java │ │ ├── jsr223-api │ │ └── javax │ │ │ └── script │ │ │ ├── CompiledScript.java │ │ │ ├── ScriptContext.java │ │ │ ├── ScriptException.java │ │ │ └── SimpleScriptContext.java │ │ ├── jsr311-api-1.1.1 │ │ └── javax │ │ │ └── ws │ │ │ └── rs │ │ │ ├── core │ │ │ ├── MediaType.java │ │ │ └── MultivaluedMap.java │ │ │ └── ext │ │ │ └── MessageBodyReader.java │ │ ├── junit-4.11 │ │ └── org │ │ │ └── junit │ │ │ └── Assert.java │ │ ├── junit-jupiter-api-5.2.0 │ │ ├── LICENSE.md │ │ └── org │ │ │ └── junit │ │ │ └── jupiter │ │ │ └── api │ │ │ └── Test.java │ │ ├── kryo-4.0.2 │ │ └── com │ │ │ └── esotericsoftware │ │ │ └── kryo │ │ │ ├── Kryo.java │ │ │ ├── Registration.java │ │ │ └── io │ │ │ └── Input.java │ │ ├── mongodbClient │ │ ├── com │ │ │ └── mongodb │ │ │ │ ├── BasicDBObject.java │ │ │ │ ├── DB.java │ │ │ │ ├── DBCollection.java │ │ │ │ ├── DBCursor.java │ │ │ │ ├── DBObject.java │ │ │ │ ├── Mongo.java │ │ │ │ ├── MongoClient.java │ │ │ │ ├── ServerAddress.java │ │ │ │ └── util │ │ │ │ └── JSON.java │ │ └── org │ │ │ └── bson │ │ │ └── BSONObject.java │ │ ├── mvel2-2.4.7 │ │ └── org │ │ │ └── mvel2 │ │ │ ├── MVEL.java │ │ │ ├── MVELRuntime.java │ │ │ ├── ParserContext.java │ │ │ ├── compiler │ │ │ ├── Accessor.java │ │ │ ├── CompiledAccExpression.java │ │ │ ├── CompiledExpression.java │ │ │ ├── ExecutableStatement.java │ │ │ └── ExpressionCompiler.java │ │ │ ├── integration │ │ │ ├── VariableResolverFactory.java │ │ │ └── impl │ │ │ │ └── ImmutableDefaultFactory.java │ │ │ ├── jsr223 │ │ │ ├── MvelCompiledScript.java │ │ │ └── MvelScriptEngine.java │ │ │ └── templates │ │ │ ├── CompiledTemplate.java │ │ │ ├── TemplateCompiler.java │ │ │ └── TemplateRuntime.java │ │ ├── playframework-2.6.x │ │ └── play │ │ │ ├── Application.java │ │ │ ├── Play.java │ │ │ ├── api │ │ │ └── mvc │ │ │ │ ├── Request.java │ │ │ │ ├── RequestHeader.java │ │ │ │ └── StatusHeader.java │ │ │ ├── core │ │ │ └── j │ │ │ │ ├── JavaContextComponents.java │ │ │ │ └── RequestImpl.java │ │ │ ├── filters │ │ │ └── csrf │ │ │ │ └── AddCSRFToken.java │ │ │ ├── http │ │ │ └── HttpEntity.java │ │ │ ├── i18n │ │ │ ├── Lang.java │ │ │ ├── Langs.java │ │ │ ├── Messages.java │ │ │ └── MessagesApi.java │ │ │ ├── libs │ │ │ ├── F.java │ │ │ ├── Files.java │ │ │ ├── XML.java │ │ │ └── typedmap │ │ │ │ ├── TypedKey.java │ │ │ │ └── TypedMap.java │ │ │ ├── mvc │ │ │ ├── BodyParser.java │ │ │ ├── Call.java │ │ │ ├── Controller.java │ │ │ ├── Http.java │ │ │ ├── Result.java │ │ │ └── Results.java │ │ │ └── twirl │ │ │ └── api │ │ │ └── Content.java │ │ ├── saxon-xqj-9.x │ │ ├── javax │ │ │ └── xml │ │ │ │ └── xquery │ │ │ │ ├── XQConnection.java │ │ │ │ ├── XQDataFactory.java │ │ │ │ ├── XQDataSource.java │ │ │ │ ├── XQDynamicContext.java │ │ │ │ ├── XQException.java │ │ │ │ ├── XQExpression.java │ │ │ │ ├── XQItemAccessor.java │ │ │ │ ├── XQItemType.java │ │ │ │ ├── XQPreparedExpression.java │ │ │ │ ├── XQResultSequence.java │ │ │ │ ├── XQSequence.java │ │ │ │ ├── XQSequenceType.java │ │ │ │ └── XQStaticContext.java │ │ └── net │ │ │ └── sf │ │ │ └── saxon │ │ │ ├── Configuration.java │ │ │ ├── SourceResolver.java │ │ │ └── xqj │ │ │ ├── Closable.java │ │ │ ├── SaxonXQConnection.java │ │ │ ├── SaxonXQDataFactory.java │ │ │ ├── SaxonXQDataSource.java │ │ │ └── SaxonXQStaticContext.java │ │ ├── scriptengine │ │ ├── javax │ │ │ └── script │ │ │ │ ├── AbstractScriptEngine.java │ │ │ │ ├── ScriptEngine.java │ │ │ │ ├── ScriptEngineFactory.java │ │ │ │ ├── ScriptEngineManager.java │ │ │ │ └── ScriptException.java │ │ └── jdk │ │ │ └── nashorn │ │ │ └── api │ │ │ └── scripting │ │ │ ├── NashornScriptEngine.java │ │ │ └── NashornScriptEngineFactory.java │ │ ├── servlet-api-2.4 │ │ └── javax │ │ │ └── servlet │ │ │ ├── Filter.java │ │ │ ├── FilterChain.java │ │ │ ├── FilterConfig.java │ │ │ ├── GenericServlet.java │ │ │ ├── RequestDispatcher.java │ │ │ ├── Servlet.java │ │ │ ├── ServletConfig.java │ │ │ ├── ServletContext.java │ │ │ ├── ServletContextEvent.java │ │ │ ├── ServletContextListener.java │ │ │ ├── ServletException.java │ │ │ ├── ServletInputStream.java │ │ │ ├── ServletOutputStream.java │ │ │ ├── ServletRequest.java │ │ │ ├── ServletResponse.java │ │ │ └── http │ │ │ ├── Cookie.java │ │ │ ├── HttpServlet.java │ │ │ ├── HttpServletRequest.java │ │ │ ├── HttpServletResponse.java │ │ │ ├── HttpSession.java │ │ │ └── HttpSessionContext.java │ │ ├── shiro-core-1.4.0 │ │ ├── NOTICE │ │ └── org │ │ │ └── apache │ │ │ └── shiro │ │ │ ├── SecurityUtils.java │ │ │ └── subject │ │ │ └── Subject.java │ │ ├── simple-xml-2.7.1 │ │ └── org │ │ │ └── simpleframework │ │ │ └── xml │ │ │ ├── Serializer.java │ │ │ ├── core │ │ │ └── Persister.java │ │ │ └── stream │ │ │ ├── DocumentProvider.java │ │ │ ├── Formatter.java │ │ │ ├── NodeBuilder.java │ │ │ ├── Provider.java │ │ │ └── StreamProvider.java │ │ ├── snakeyaml-1.21 │ │ └── org │ │ │ └── yaml │ │ │ └── snakeyaml │ │ │ ├── Yaml.java │ │ │ ├── constructor │ │ │ └── events │ │ │ └── Event.java │ │ ├── spring-ldap-2.3.2 │ │ └── org │ │ │ └── springframework │ │ │ └── ldap │ │ │ ├── core │ │ │ ├── AttributesMapper.java │ │ │ ├── ContextMapper.java │ │ │ ├── DirContextOperations.java │ │ │ ├── DirContextProcessor.java │ │ │ ├── LdapOperations.java │ │ │ ├── LdapTemplate.java │ │ │ └── NameClassPairCallbackHandler.java │ │ │ ├── filter │ │ │ ├── EqualsFilter.java │ │ │ ├── Filter.java │ │ │ └── HardcodedFilter.java │ │ │ ├── query │ │ │ ├── ConditionCriteria.java │ │ │ ├── ContainerCriteria.java │ │ │ ├── LdapQuery.java │ │ │ └── LdapQueryBuilder.java │ │ │ └── support │ │ │ ├── LdapEncoder.java │ │ │ ├── LdapNameBuilder.java │ │ │ └── LdapUtils.java │ │ ├── springframework-5.2.3 │ │ ├── LICENSE.txt │ │ └── org │ │ │ └── springframework │ │ │ ├── beans │ │ │ └── factory │ │ │ │ ├── BeanFactory.java │ │ │ │ ├── HierarchicalBeanFactory.java │ │ │ │ ├── InitializingBean.java │ │ │ │ └── ListableBeanFactory.java │ │ │ ├── boot │ │ │ ├── SpringBootConfiguration.java │ │ │ ├── actuate │ │ │ │ └── autoconfigure │ │ │ │ │ └── security │ │ │ │ │ └── servlet │ │ │ │ │ └── EndpointRequest.java │ │ │ ├── autoconfigure │ │ │ │ └── SpringBootApplication.java │ │ │ └── security │ │ │ │ └── servlet │ │ │ │ └── ApplicationContextRequestMatcher.java │ │ │ ├── context │ │ │ ├── ApplicationContext.java │ │ │ ├── ApplicationEventPublisher.java │ │ │ ├── MessageSource.java │ │ │ └── annotation │ │ │ │ ├── Bean.java │ │ │ │ └── Configuration.java │ │ │ ├── core │ │ │ ├── ParameterizedTypeReference.java │ │ │ ├── env │ │ │ │ └── EnvironmentCapable.java │ │ │ └── io │ │ │ │ ├── InputStreamSource.java │ │ │ │ ├── Resource.java │ │ │ │ ├── ResourceLoader.java │ │ │ │ └── support │ │ │ │ └── ResourcePatternResolver.java │ │ │ ├── expression │ │ │ ├── EvaluationContext.java │ │ │ ├── EvaluationException.java │ │ │ ├── Expression.java │ │ │ ├── ExpressionParser.java │ │ │ └── spel │ │ │ │ ├── standard │ │ │ │ └── SpelExpressionParser.java │ │ │ │ └── support │ │ │ │ ├── SimpleEvaluationContext.java │ │ │ │ └── StandardEvaluationContext.java │ │ │ ├── http │ │ │ ├── HttpEntity.java │ │ │ ├── HttpHeaders.java │ │ │ ├── HttpMethod.java │ │ │ ├── HttpStatus.java │ │ │ ├── RequestEntity.java │ │ │ ├── ResponseEntity.java │ │ │ └── client │ │ │ │ └── ClientHttpResponse.java │ │ │ ├── jndi │ │ │ └── JndiTemplate.java │ │ │ ├── lang │ │ │ └── Nullable.java │ │ │ ├── remoting │ │ │ ├── httpinvoker │ │ │ │ └── HttpInvokerServiceExporter.java │ │ │ └── rmi │ │ │ │ └── RemoteInvocationSerializingExporter.java │ │ │ ├── security │ │ │ ├── config │ │ │ │ ├── Customizer.java │ │ │ │ └── annotation │ │ │ │ │ ├── AbstractConfiguredSecurityBuilder.java │ │ │ │ │ ├── AbstractSecurityBuilder.java │ │ │ │ │ ├── SecurityBuilder.java │ │ │ │ │ ├── SecurityConfigurer.java │ │ │ │ │ ├── SecurityConfigurerAdapter.java │ │ │ │ │ └── web │ │ │ │ │ ├── AbstractRequestMatcherRegistry.java │ │ │ │ │ ├── HttpSecurityBuilder.java │ │ │ │ │ ├── builders │ │ │ │ │ └── HttpSecurity.java │ │ │ │ │ └── configurers │ │ │ │ │ ├── AbstractConfigAttributeRequestMatcherRegistry.java │ │ │ │ │ ├── AbstractHttpConfigurer.java │ │ │ │ │ ├── AbstractInterceptUrlConfigurer.java │ │ │ │ │ └── ExpressionUrlAuthorizationConfigurer.java │ │ │ └── web │ │ │ │ ├── DefaultSecurityFilterChain.java │ │ │ │ ├── SecurityFilterChain.java │ │ │ │ └── util │ │ │ │ └── matcher │ │ │ │ └── RequestMatcher.java │ │ │ ├── stereotype │ │ │ ├── Component.java │ │ │ ├── Controller.java │ │ │ └── Indexed.java │ │ │ ├── util │ │ │ └── MultiValueMap.java │ │ │ └── web │ │ │ ├── bind │ │ │ └── annotation │ │ │ │ ├── PathVariable.java │ │ │ │ ├── PostMapping.java │ │ │ │ ├── RequestBody.java │ │ │ │ ├── RequestMapping.java │ │ │ │ ├── RequestMethod.java │ │ │ │ └── RequestParam.java │ │ │ ├── client │ │ │ ├── RequestCallback.java │ │ │ ├── ResponseExtractor.java │ │ │ ├── RestClientException.java │ │ │ └── RestTemplate.java │ │ │ ├── context │ │ │ └── WebApplicationContext.java │ │ │ └── multipart │ │ │ ├── MultipartFile.java │ │ │ └── MultipartRequest.java │ │ ├── unboundid-ldap-4.0.14 │ │ └── com │ │ │ └── unboundid │ │ │ └── ldap │ │ │ └── sdk │ │ │ ├── AsyncRequestID.java │ │ │ ├── DereferencePolicy.java │ │ │ ├── Filter.java │ │ │ ├── LDAPConnection.java │ │ │ ├── LDAPException.java │ │ │ ├── LDAPSearchException.java │ │ │ ├── ReadOnlySearchRequest.java │ │ │ ├── SearchRequest.java │ │ │ ├── SearchResult.java │ │ │ ├── SearchResultEntry.java │ │ │ ├── SearchResultListener.java │ │ │ └── SearchScope.java │ │ ├── validation-api-2.0.1.Final │ │ └── javax │ │ │ └── validation │ │ │ ├── ClockProvider.java │ │ │ ├── ConstraintValidator.java │ │ │ └── ConstraintValidatorContext.java │ │ └── xstream-1.4.10 │ │ └── com │ │ └── thoughtworks │ │ └── xstream │ │ └── XStream.java └── upgrades │ ├── 054d7e823b2c5b93bf2a14d5c22a107934fbc133 │ ├── old.dbscheme │ ├── semmlecode.dbscheme │ └── upgrade.properties │ ├── 2a682863863cf7641d54f762070a5e682847d1ca │ ├── old.dbscheme │ ├── semmlecode.dbscheme │ └── upgrade.properties │ ├── e7706df98aaefcf055f35f50582f2686f41c23bb │ ├── annotValue.ql │ ├── callableEnclosingExpr.ql │ ├── exprs.ql │ ├── hasLocation.ql │ ├── isParenthesized.ql │ ├── numlines.ql │ ├── old.dbscheme │ ├── semmlecode.dbscheme │ ├── statementEnclosingExpr.ql │ └── upgrade.properties │ └── qlpack.yml ├── javascript ├── change-notes │ ├── 2020-11-06-date-functions.md │ ├── 2020-11-09-jwt.md │ ├── 2020-11-11-react-hot-loader.md │ ├── 2020-11-25-prototype-pollution.md │ ├── 2020-11-30-loginjection.md │ ├── 2020-11-30-nosql.md │ ├── 2020-12-02-typescript-4.1.md │ ├── 2020-12-09-external-flow-sources.md │ ├── 2020-12-16-build-artifact-leak.md │ ├── 2020-12-16-indirect-cmd-libraries.md │ ├── 2020-12-22-execa.md │ ├── 2021-01-04-superliniar-redos.md │ ├── 2021-01-08-js-incomplete-multi-character-sanitization.md │ ├── 2021-01-14-polynomial-redos.md │ ├── 2021-01-18-angular-templates.md │ ├── 2021-01-18-server-crash.md │ ├── 2021-01-21-type-inference-compound.md │ ├── 2021-01-21-unneeded-defensive-code.md │ ├── 2021-02-08-immutable.md │ ├── 2021-02-08-xml-parser-taint.md │ ├── 2021-02-08-xss-through-dom-forms.md │ ├── 2021-02-09-form-parsers.md │ ├── 2021-02-10-markdown.md │ ├── 2021-02-11-apollo-client.md │ ├── 2021-02-16-vue-router.md │ ├── 2021-02-18-next-js.md │ ├── 2021-02-18-typescript-4.2.md │ ├── 2021-02-25-event-handler-receiver-is-dom-element.md │ ├── 2021-02-25-http-proxy.md │ ├── 2021-02-26-form-data.md │ ├── 2021-03-01-ajv.md │ ├── 2021-03-09-template-object-injection.md │ ├── 2021-03-10-d3.md │ ├── 2021-03-15-client-side-remote-flow-sources.md │ ├── 2021-03-17-koa-route.md │ ├── 2021-03-17-precise-regex-replace.md │ ├── 2021-03-17-puppeteer.md │ ├── 2021-03-19-async-execute.md │ ├── 2021-03-23-accessor-calls.md │ ├── 2021-03-25-remove-legacy-code-duplication-library.md │ └── 2021-03-25-remove-legacy-filter-queries.md ├── config │ └── suites │ │ ├── javascript │ │ ├── analysis-quality │ │ ├── code-review │ │ ├── compatibility │ │ ├── correctness │ │ ├── correctness-core │ │ ├── correctness-more │ │ ├── dependencies │ │ ├── flow-summaries │ │ ├── frameworks │ │ ├── frameworks-core │ │ ├── frameworks-more │ │ ├── maintainability │ │ ├── maintainability-core │ │ ├── maintainability-more │ │ ├── metrics │ │ ├── metrics-core │ │ ├── metrics-more │ │ ├── quick-wins │ │ ├── readability │ │ ├── readability-core │ │ ├── readability-more │ │ ├── security │ │ ├── security-all │ │ └── security-extra │ │ └── lgtm │ │ ├── javascript-alerts-lgtm │ │ ├── javascript-lgtm │ │ ├── javascript-metrics-lgtm │ │ └── javascript-util-lgtm ├── documentation │ ├── flow-summaries.rst │ └── library-customization.rst ├── externs │ ├── DefinitelyTyped-LICENSE │ ├── README.md │ ├── es │ │ ├── es2016.js │ │ ├── es2017.js │ │ ├── es3.js │ │ ├── es5.js │ │ ├── es6.js │ │ ├── es6_collections.js │ │ ├── intl.js │ │ └── proxy.js │ ├── lib │ │ ├── bdd.js │ │ ├── jquery-3.2.js │ │ ├── should.js │ │ └── vows.js │ ├── nodejs │ │ ├── assert.js │ │ ├── assert_legacy.js │ │ ├── buffer.js │ │ ├── child_process.js │ │ ├── cluster.js │ │ ├── console.js │ │ ├── constants.js │ │ ├── crypto.js │ │ ├── dgram.js │ │ ├── dns.js │ │ ├── domain.js │ │ ├── events.js │ │ ├── fs.js │ │ ├── globals.js │ │ ├── http.js │ │ ├── https.js │ │ ├── module.js │ │ ├── net.js │ │ ├── os.js │ │ ├── path.js │ │ ├── process.js │ │ ├── punycode.js │ │ ├── querystring.js │ │ ├── readline.js │ │ ├── repl.js │ │ ├── stream.js │ │ ├── string_decoder.js │ │ ├── sys.js │ │ ├── timers.js │ │ ├── tls.js │ │ ├── tty.js │ │ ├── url.js │ │ ├── util.js │ │ ├── v8.js │ │ ├── vm.js │ │ └── zlib.js │ ├── vm │ │ ├── jsshell.js │ │ ├── rhino.js │ │ ├── spidermonkey.js │ │ └── v8.js │ └── web │ │ ├── chrome.js │ │ ├── fetchapi.js │ │ ├── fileapi.js │ │ ├── flash.js │ │ ├── gecko_css.js │ │ ├── gecko_dom.js │ │ ├── gecko_event.js │ │ ├── gecko_ext.js │ │ ├── gecko_xml.js │ │ ├── html5.js │ │ ├── ie_css.js │ │ ├── ie_dom.js │ │ ├── ie_event.js │ │ ├── ie_vml.js │ │ ├── intl.js │ │ ├── iphone.js │ │ ├── mediasource.js │ │ ├── page_visibility.js │ │ ├── streamsapi.js │ │ ├── url.js │ │ ├── w3c_anim_timing.js │ │ ├── w3c_batterystatus.js │ │ ├── w3c_css.js │ │ ├── w3c_css3d.js │ │ ├── w3c_device_sensor_event.js │ │ ├── w3c_dom1.js │ │ ├── w3c_dom2.js │ │ ├── w3c_dom3.js │ │ ├── w3c_dom4.js │ │ ├── w3c_elementtraversal.js │ │ ├── w3c_encoding.js │ │ ├── w3c_event.js │ │ ├── w3c_event3.js │ │ ├── w3c_gamepad.js │ │ ├── w3c_geolocation.js │ │ ├── w3c_indexeddb.js │ │ ├── w3c_midi.js │ │ ├── w3c_navigation_timing.js │ │ ├── w3c_permissions.js │ │ ├── w3c_pointer_events.js │ │ ├── w3c_range.js │ │ ├── w3c_requestidlecallback.js │ │ ├── w3c_rtc.js │ │ ├── w3c_screen_orientation.js │ │ ├── w3c_selectors.js │ │ ├── w3c_serviceworker.js │ │ ├── w3c_touch_event.js │ │ ├── w3c_webcrypto.js │ │ ├── w3c_xml.js │ │ ├── webgl.js │ │ ├── webkit_css.js │ │ ├── webkit_dom.js │ │ ├── webkit_event.js │ │ ├── webkit_notifications.js │ │ ├── webkit_usercontent.js │ │ ├── webstorage.js │ │ ├── whatwg_encoding.js │ │ └── window.js ├── extractor │ ├── .settings │ │ └── org.eclipse.core.resources.prefs │ ├── LICENSE-babylon.md │ ├── README.md │ ├── format.json │ ├── lib │ │ └── typescript │ │ │ ├── .gitignore │ │ │ ├── .yarnrc │ │ │ ├── README.md │ │ │ ├── package.json │ │ │ ├── src │ │ │ ├── ast_extractor.ts │ │ │ ├── common.ts │ │ │ ├── main.ts │ │ │ ├── type_table.ts │ │ │ ├── typescript.d.ts │ │ │ ├── typescript.js │ │ │ └── virtual_source_root.ts │ │ │ ├── tsconfig.json │ │ │ ├── tslint.json │ │ │ ├── yarn.lock │ │ │ └── yarnrc-build │ ├── parser-tests │ │ ├── babylon │ │ │ ├── README.md │ │ │ ├── experimental │ │ │ │ ├── class-properties │ │ │ │ │ ├── asi-failure-computed │ │ │ │ │ │ ├── actual.js │ │ │ │ │ │ └── expected.error │ │ │ │ │ ├── asi-failure-generator │ │ │ │ │ │ ├── actual.js │ │ │ │ │ │ └── expected.error │ │ │ │ │ └── asi-success │ │ │ │ │ │ ├── actual.js │ │ │ │ │ │ └── expected.ast │ │ │ │ ├── function-sent │ │ │ │ │ ├── inside-function │ │ │ │ │ │ ├── actual.js │ │ │ │ │ │ └── expected.error │ │ │ │ │ ├── inside-generator │ │ │ │ │ │ ├── actual.js │ │ │ │ │ │ └── expected.ast │ │ │ │ │ └── invalid-property │ │ │ │ │ │ ├── actual.js │ │ │ │ │ │ └── expected.error │ │ │ │ └── uncategorised │ │ │ │ │ ├── 9 │ │ │ │ │ ├── actual.js │ │ │ │ │ └── expected.ast │ │ │ │ │ ├── 10 │ │ │ │ │ ├── actual.js │ │ │ │ │ └── expected.ast │ │ │ │ │ ├── 11 │ │ │ │ │ ├── actual.js │ │ │ │ │ └── expected.ast │ │ │ │ │ ├── 12 │ │ │ │ │ ├── actual.js │ │ │ │ │ └── expected.ast │ │ │ │ │ ├── 13 │ │ │ │ │ ├── actual.js │ │ │ │ │ └── expected.ast │ │ │ │ │ ├── 14 │ │ │ │ │ └── actual.js │ │ │ │ │ ├── 33 │ │ │ │ │ ├── actual.js │ │ │ │ │ └── expected.ast │ │ │ │ │ ├── 34 │ │ │ │ │ ├── actual.js │ │ │ │ │ └── expected.ast │ │ │ │ │ ├── 35 │ │ │ │ │ ├── actual.js │ │ │ │ │ └── expected.ast │ │ │ │ │ ├── 36 │ │ │ │ │ ├── actual.js │ │ │ │ │ └── expected.ast │ │ │ │ │ ├── 37 │ │ │ │ │ ├── actual.js │ │ │ │ │ └── expected.ast │ │ │ │ │ ├── 38 │ │ │ │ │ ├── actual.js │ │ │ │ │ └── expected.ast │ │ │ │ │ ├── 39 │ │ │ │ │ ├── actual.js │ │ │ │ │ └── expected.ast │ │ │ │ │ ├── 40 │ │ │ │ │ ├── actual.js │ │ │ │ │ └── expected.ast │ │ │ │ │ ├── 41 │ │ │ │ │ ├── actual.js │ │ │ │ │ └── expected.error │ │ │ │ │ ├── 42 │ │ │ │ │ ├── actual.js │ │ │ │ │ └── expected.error │ │ │ │ │ ├── 43 │ │ │ │ │ ├── actual.js │ │ │ │ │ └── expected.ast │ │ │ │ │ ├── 44 │ │ │ │ │ ├── actual.js │ │ │ │ │ └── expected.ast │ │ │ │ │ ├── 45 │ │ │ │ │ ├── actual.js │ │ │ │ │ └── expected.ast │ │ │ │ │ ├── 46 │ │ │ │ │ ├── actual.js │ │ │ │ │ └── expected.ast │ │ │ │ │ ├── 49 │ │ │ │ │ ├── actual.js │ │ │ │ │ └── expected.ast │ │ │ │ │ ├── 50 │ │ │ │ │ ├── actual.js │ │ │ │ │ └── expected.ast │ │ │ │ │ ├── 51 │ │ │ │ │ ├── actual.js │ │ │ │ │ └── expected.ast │ │ │ │ │ ├── 52 │ │ │ │ │ ├── actual.js │ │ │ │ │ └── expected.ast │ │ │ │ │ ├── 53 │ │ │ │ │ ├── actual.js │ │ │ │ │ └── expected.ast │ │ │ │ │ ├── 54 │ │ │ │ │ ├── actual.js │ │ │ │ │ └── expected.ast │ │ │ │ │ └── 62 │ │ │ │ │ ├── actual.js │ │ │ │ │ └── expected.ast │ │ │ ├── generate-tests.patch │ │ │ └── harmony │ │ │ │ └── arrow-functions │ │ │ │ └── object-rest-spread │ │ │ │ ├── actual.js │ │ │ │ └── expected.ast │ │ ├── jcorn-jsx │ │ │ ├── README.md │ │ │ ├── generate-tests.patch │ │ │ ├── test0.fail │ │ │ ├── test0.js │ │ │ ├── test1.fail │ │ │ ├── test1.js │ │ │ ├── test10.ast │ │ │ ├── test10.js │ │ │ ├── test11.ast │ │ │ ├── test11.js │ │ │ ├── test12.ast │ │ │ ├── test12.js │ │ │ ├── test13.ast │ │ │ ├── test13.js │ │ │ ├── test14.ast │ │ │ ├── test14.js │ │ │ ├── test15.ast │ │ │ ├── test15.js │ │ │ ├── test16.ast │ │ │ ├── test16.js │ │ │ ├── test17.ast │ │ │ ├── test17.js │ │ │ ├── test18.ast │ │ │ ├── test18.js │ │ │ ├── test19.ast │ │ │ ├── test19.js │ │ │ ├── test2.ast │ │ │ ├── test2.js │ │ │ ├── test2.options.json │ │ │ ├── test20.ast │ │ │ ├── test20.js │ │ │ ├── test21.ast │ │ │ ├── test21.js │ │ │ ├── test22.ast │ │ │ ├── test22.js │ │ │ ├── test23.ast │ │ │ ├── test23.js │ │ │ ├── test24.ast │ │ │ ├── test24.js │ │ │ ├── test25.ast │ │ │ ├── test25.js │ │ │ ├── test26.ast │ │ │ ├── test26.js │ │ │ ├── test27.ast │ │ │ ├── test27.js │ │ │ ├── test28.ast │ │ │ ├── test28.js │ │ │ ├── test29.ast │ │ │ ├── test29.js │ │ │ ├── test3.fail │ │ │ ├── test3.js │ │ │ ├── test3.options.json │ │ │ ├── test30.ast │ │ │ ├── test30.js │ │ │ ├── test31.ast │ │ │ ├── test31.js │ │ │ ├── test32.ast │ │ │ ├── test32.js │ │ │ ├── test4.fail │ │ │ ├── test4.js │ │ │ ├── test4.options.json │ │ │ ├── test5.ast │ │ │ ├── test5.js │ │ │ ├── test6.ast │ │ │ ├── test6.js │ │ │ ├── test7.ast │ │ │ ├── test7.js │ │ │ ├── test8.ast │ │ │ ├── test8.js │ │ │ ├── test9.ast │ │ │ └── test9.js │ │ └── robustness │ │ │ └── letLookahead.js │ ├── src │ │ └── com │ │ │ └── semmle │ │ │ ├── jcorn │ │ │ ├── AngularExpressionParser.java │ │ │ ├── CustomParser.java │ │ │ ├── ESNextParser.java │ │ │ ├── Identifiers.java │ │ │ ├── Locutil.java │ │ │ ├── Options.java │ │ │ ├── Parser.java │ │ │ ├── README.md │ │ │ ├── SyntaxError.java │ │ │ ├── TokenType.java │ │ │ ├── Whitespace.java │ │ │ ├── flow │ │ │ │ └── FlowParser.java │ │ │ └── jsx │ │ │ │ ├── JSXOptions.java │ │ │ │ ├── JSXParser.java │ │ │ │ └── XHTMLEntities.java │ │ │ ├── js │ │ │ ├── ast │ │ │ │ ├── ABinaryExpression.java │ │ │ │ ├── AClass.java │ │ │ │ ├── AFunction.java │ │ │ │ ├── AFunctionExpression.java │ │ │ │ ├── AST2JSON.java │ │ │ │ ├── AngularPipeRef.java │ │ │ │ ├── ArrayExpression.java │ │ │ │ ├── ArrayPattern.java │ │ │ │ ├── ArrowFunctionExpression.java │ │ │ │ ├── AssignmentExpression.java │ │ │ │ ├── AssignmentPattern.java │ │ │ │ ├── AwaitExpression.java │ │ │ │ ├── BinaryExpression.java │ │ │ │ ├── BindExpression.java │ │ │ │ ├── BlockStatement.java │ │ │ │ ├── BreakStatement.java │ │ │ │ ├── CallExpression.java │ │ │ │ ├── CatchClause.java │ │ │ │ ├── Chainable.java │ │ │ │ ├── ClassBody.java │ │ │ │ ├── ClassDeclaration.java │ │ │ │ ├── ClassExpression.java │ │ │ │ ├── Comment.java │ │ │ │ ├── ComprehensionBlock.java │ │ │ │ ├── ComprehensionExpression.java │ │ │ │ ├── ConditionalExpression.java │ │ │ │ ├── ContinueStatement.java │ │ │ │ ├── DebuggerStatement.java │ │ │ │ ├── DeclarationFlags.java │ │ │ │ ├── Decorator.java │ │ │ │ ├── DefaultVisitor.java │ │ │ │ ├── DestructuringPattern.java │ │ │ │ ├── DoWhileStatement.java │ │ │ │ ├── DynamicImport.java │ │ │ │ ├── EmptyStatement.java │ │ │ │ ├── EnhancedForStatement.java │ │ │ │ ├── ExportAllDeclaration.java │ │ │ │ ├── ExportDeclaration.java │ │ │ │ ├── ExportDefaultDeclaration.java │ │ │ │ ├── ExportDefaultSpecifier.java │ │ │ │ ├── ExportNamedDeclaration.java │ │ │ │ ├── ExportNamespaceSpecifier.java │ │ │ │ ├── ExportSpecifier.java │ │ │ │ ├── Expression.java │ │ │ │ ├── ExpressionStatement.java │ │ │ │ ├── FieldDefinition.java │ │ │ │ ├── ForInStatement.java │ │ │ │ ├── ForOfStatement.java │ │ │ │ ├── ForStatement.java │ │ │ │ ├── FunctionDeclaration.java │ │ │ │ ├── FunctionExpression.java │ │ │ │ ├── IFunction.java │ │ │ │ ├── INode.java │ │ │ │ ├── IPattern.java │ │ │ │ ├── ISourceElement.java │ │ │ │ ├── IStatementContainer.java │ │ │ │ ├── Identifier.java │ │ │ │ ├── IfStatement.java │ │ │ │ ├── ImportDeclaration.java │ │ │ │ ├── ImportDefaultSpecifier.java │ │ │ │ ├── ImportNamespaceSpecifier.java │ │ │ │ ├── ImportSpecifier.java │ │ │ │ ├── InvokeExpression.java │ │ │ │ ├── JumpStatement.java │ │ │ │ ├── LabeledStatement.java │ │ │ │ ├── LetExpression.java │ │ │ │ ├── LetStatement.java │ │ │ │ ├── Literal.java │ │ │ │ ├── LogicalExpression.java │ │ │ │ ├── Loop.java │ │ │ │ ├── MemberDefinition.java │ │ │ │ ├── MemberExpression.java │ │ │ │ ├── MetaProperty.java │ │ │ │ ├── MethodDefinition.java │ │ │ │ ├── NewExpression.java │ │ │ │ ├── Node.java │ │ │ │ ├── NodeCopier.java │ │ │ │ ├── ObjectExpression.java │ │ │ │ ├── ObjectPattern.java │ │ │ │ ├── ParenthesizedExpression.java │ │ │ │ ├── Position.java │ │ │ │ ├── Program.java │ │ │ │ ├── Property.java │ │ │ │ ├── RestElement.java │ │ │ │ ├── ReturnStatement.java │ │ │ │ ├── SequenceExpression.java │ │ │ │ ├── SourceElement.java │ │ │ │ ├── SourceLocation.java │ │ │ │ ├── SpreadElement.java │ │ │ │ ├── Statement.java │ │ │ │ ├── Super.java │ │ │ │ ├── SwitchCase.java │ │ │ │ ├── SwitchStatement.java │ │ │ │ ├── TaggedTemplateExpression.java │ │ │ │ ├── TemplateElement.java │ │ │ │ ├── TemplateLiteral.java │ │ │ │ ├── ThisExpression.java │ │ │ │ ├── ThrowStatement.java │ │ │ │ ├── Token.java │ │ │ │ ├── TryStatement.java │ │ │ │ ├── UnaryExpression.java │ │ │ │ ├── UpdateExpression.java │ │ │ │ ├── VariableDeclaration.java │ │ │ │ ├── VariableDeclarator.java │ │ │ │ ├── Visitor.java │ │ │ │ ├── WhileStatement.java │ │ │ │ ├── WithStatement.java │ │ │ │ ├── XMLAnyName.java │ │ │ │ ├── XMLAttributeSelector.java │ │ │ │ ├── XMLDotDotExpression.java │ │ │ │ ├── XMLFilterExpression.java │ │ │ │ ├── XMLQualifiedIdentifier.java │ │ │ │ ├── YieldExpression.java │ │ │ │ ├── jsdoc │ │ │ │ │ ├── AllLiteral.java │ │ │ │ │ ├── ArrayType.java │ │ │ │ │ ├── CompoundType.java │ │ │ │ │ ├── FieldType.java │ │ │ │ │ ├── FunctionType.java │ │ │ │ │ ├── JSDocComment.java │ │ │ │ │ ├── JSDocElement.java │ │ │ │ │ ├── JSDocTag.java │ │ │ │ │ ├── JSDocTypeExpression.java │ │ │ │ │ ├── NameExpression.java │ │ │ │ │ ├── NonNullableType.java │ │ │ │ │ ├── NullLiteral.java │ │ │ │ │ ├── NullableLiteral.java │ │ │ │ │ ├── NullableType.java │ │ │ │ │ ├── OptionalType.java │ │ │ │ │ ├── ParameterType.java │ │ │ │ │ ├── RecordType.java │ │ │ │ │ ├── RestType.java │ │ │ │ │ ├── TypeApplication.java │ │ │ │ │ ├── UnaryTypeConstructor.java │ │ │ │ │ ├── UndefinedLiteral.java │ │ │ │ │ ├── UnionType.java │ │ │ │ │ ├── Visitor.java │ │ │ │ │ ├── VoidLiteral.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── json │ │ │ │ │ ├── JSONArray.java │ │ │ │ │ ├── JSONLiteral.java │ │ │ │ │ ├── JSONObject.java │ │ │ │ │ ├── JSONValue.java │ │ │ │ │ ├── Visitor.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── jsx │ │ │ │ │ ├── IJSXAttribute.java │ │ │ │ │ ├── IJSXExpression.java │ │ │ │ │ ├── IJSXName.java │ │ │ │ │ ├── JSXAttribute.java │ │ │ │ │ ├── JSXBoundaryElement.java │ │ │ │ │ ├── JSXClosingElement.java │ │ │ │ │ ├── JSXElement.java │ │ │ │ │ ├── JSXEmptyExpression.java │ │ │ │ │ ├── JSXExpressionContainer.java │ │ │ │ │ ├── JSXIdentifier.java │ │ │ │ │ ├── JSXMemberExpression.java │ │ │ │ │ ├── JSXNamespacedName.java │ │ │ │ │ ├── JSXOpeningElement.java │ │ │ │ │ ├── JSXSpreadAttribute.java │ │ │ │ │ └── JSXThisExpr.java │ │ │ │ ├── package-info.java │ │ │ │ └── regexp │ │ │ │ │ ├── BackReference.java │ │ │ │ │ ├── Caret.java │ │ │ │ │ ├── CharacterClass.java │ │ │ │ │ ├── CharacterClassEscape.java │ │ │ │ │ ├── CharacterClassRange.java │ │ │ │ │ ├── Constant.java │ │ │ │ │ ├── ControlEscape.java │ │ │ │ │ ├── ControlLetter.java │ │ │ │ │ ├── DecimalEscape.java │ │ │ │ │ ├── Disjunction.java │ │ │ │ │ ├── Dollar.java │ │ │ │ │ ├── Dot.java │ │ │ │ │ ├── Error.java │ │ │ │ │ ├── EscapeSequence.java │ │ │ │ │ ├── Group.java │ │ │ │ │ ├── HexEscapeSequence.java │ │ │ │ │ ├── IdentityEscape.java │ │ │ │ │ ├── Literal.java │ │ │ │ │ ├── NamedBackReference.java │ │ │ │ │ ├── NonWordBoundary.java │ │ │ │ │ ├── OctalEscape.java │ │ │ │ │ ├── Opt.java │ │ │ │ │ ├── Plus.java │ │ │ │ │ ├── Quantifier.java │ │ │ │ │ ├── Range.java │ │ │ │ │ ├── RegExpTerm.java │ │ │ │ │ ├── Sequence.java │ │ │ │ │ ├── Star.java │ │ │ │ │ ├── UnicodeEscapeSequence.java │ │ │ │ │ ├── UnicodePropertyEscape.java │ │ │ │ │ ├── Visitor.java │ │ │ │ │ ├── WordBoundary.java │ │ │ │ │ ├── ZeroWidthNegativeLookahead.java │ │ │ │ │ ├── ZeroWidthNegativeLookbehind.java │ │ │ │ │ ├── ZeroWidthPositiveLookahead.java │ │ │ │ │ ├── ZeroWidthPositiveLookbehind.java │ │ │ │ │ └── package-info.java │ │ │ ├── dependencies │ │ │ │ ├── AsyncFetcher.java │ │ │ │ ├── DependencyResolver.java │ │ │ │ ├── Fetcher.java │ │ │ │ ├── SemVer.java │ │ │ │ └── packument │ │ │ │ │ ├── PackageJson.java │ │ │ │ │ └── Packument.java │ │ │ ├── extractor │ │ │ │ ├── ASTExtractor.java │ │ │ │ ├── AutoBuild.java │ │ │ │ ├── CFGExtractor.java │ │ │ │ ├── DeclaredNames.java │ │ │ │ ├── DependencyInstallationResult.java │ │ │ │ ├── EnvironmentVariables.java │ │ │ │ ├── ExprKinds.java │ │ │ │ ├── ExtractionMetrics.java │ │ │ │ ├── ExtractorConfig.java │ │ │ │ ├── ExtractorState.java │ │ │ │ ├── FileExtractor.java │ │ │ │ ├── FileSnippet.java │ │ │ │ ├── HTMLExtractor.java │ │ │ │ ├── IExtractor.java │ │ │ │ ├── JSDocExtractor.java │ │ │ │ ├── JSExtractor.java │ │ │ │ ├── JSONExtractor.java │ │ │ │ ├── JumpType.java │ │ │ │ ├── LexicalExtractor.java │ │ │ │ ├── LoCInfo.java │ │ │ │ ├── LocationManager.java │ │ │ │ ├── Main.java │ │ │ │ ├── NodeJSDetector.java │ │ │ │ ├── RegExpExtractor.java │ │ │ │ ├── ScopeKind.java │ │ │ │ ├── ScopeManager.java │ │ │ │ ├── ScriptExtractor.java │ │ │ │ ├── StmtKinds.java │ │ │ │ ├── SyntacticContextManager.java │ │ │ │ ├── TextualExtractor.java │ │ │ │ ├── TopLevelKind.java │ │ │ │ ├── TypeExprKinds.java │ │ │ │ ├── TypeScriptExtractor.java │ │ │ │ ├── TypeScriptMode.java │ │ │ │ ├── VirtualSourceRoot.java │ │ │ │ ├── YAMLExtractor.java │ │ │ │ ├── test │ │ │ │ │ ├── ASTMatchingTests.java │ │ │ │ │ ├── AllTests.java │ │ │ │ │ ├── AutoBuildTests.java │ │ │ │ │ ├── ClassPropertiesTests.java │ │ │ │ │ ├── DecoratorTests.java │ │ │ │ │ ├── ExportExtensionsTests.java │ │ │ │ │ ├── FunctionSentTests.java │ │ │ │ │ ├── JSXTests.java │ │ │ │ │ ├── NodeJSDetectorTests.java │ │ │ │ │ ├── NumericSeparatorTests.java │ │ │ │ │ ├── ObjectRestSpreadTests.java │ │ │ │ │ ├── RobustnessTests.java │ │ │ │ │ └── TrapTests.java │ │ │ │ └── trapcache │ │ │ │ │ ├── CachingTrapWriter.java │ │ │ │ │ ├── DefaultTrapCache.java │ │ │ │ │ ├── DummyTrapCache.java │ │ │ │ │ └── ITrapCache.java │ │ │ └── parser │ │ │ │ ├── JSDocParser.java │ │ │ │ ├── JSONParser.java │ │ │ │ ├── JSParser.java │ │ │ │ ├── JcornWrapper.java │ │ │ │ ├── ParseError.java │ │ │ │ ├── ParsedProject.java │ │ │ │ └── RegExpParser.java │ │ │ └── ts │ │ │ ├── ast │ │ │ ├── ArrayTypeExpr.java │ │ │ ├── ConditionalTypeExpr.java │ │ │ ├── DecoratorList.java │ │ │ ├── EnumDeclaration.java │ │ │ ├── EnumMember.java │ │ │ ├── ExportAsNamespaceDeclaration.java │ │ │ ├── ExportWholeDeclaration.java │ │ │ ├── ExpressionWithTypeArguments.java │ │ │ ├── ExternalModuleDeclaration.java │ │ │ ├── ExternalModuleReference.java │ │ │ ├── FunctionTypeExpr.java │ │ │ ├── GenericTypeExpr.java │ │ │ ├── GlobalAugmentationDeclaration.java │ │ │ ├── INodeWithSymbol.java │ │ │ ├── ITypeExpression.java │ │ │ ├── ITypedAstNode.java │ │ │ ├── ImportTypeExpr.java │ │ │ ├── ImportWholeDeclaration.java │ │ │ ├── IndexedAccessTypeExpr.java │ │ │ ├── InferTypeExpr.java │ │ │ ├── InterfaceDeclaration.java │ │ │ ├── InterfaceTypeExpr.java │ │ │ ├── IntersectionTypeExpr.java │ │ │ ├── KeywordTypeExpr.java │ │ │ ├── MappedTypeExpr.java │ │ │ ├── NamespaceDeclaration.java │ │ │ ├── NonNullAssertion.java │ │ │ ├── OptionalTypeExpr.java │ │ │ ├── ParenthesizedTypeExpr.java │ │ │ ├── PredicateTypeExpr.java │ │ │ ├── RestTypeExpr.java │ │ │ ├── TemplateLiteralTypeExpr.java │ │ │ ├── TupleTypeExpr.java │ │ │ ├── TypeAliasDeclaration.java │ │ │ ├── TypeAssertion.java │ │ │ ├── TypeExpression.java │ │ │ ├── TypeParameter.java │ │ │ ├── TypeofTypeExpr.java │ │ │ ├── UnaryTypeExpr.java │ │ │ └── UnionTypeExpr.java │ │ │ └── extractor │ │ │ ├── TypeExtractor.java │ │ │ ├── TypeScriptASTConverter.java │ │ │ ├── TypeScriptParser.java │ │ │ ├── TypeScriptParserMetadata.java │ │ │ └── TypeTable.java │ ├── tests │ │ ├── cfg │ │ │ ├── input │ │ │ │ ├── classexpr1.js │ │ │ │ ├── classexpr2.js │ │ │ │ ├── classexpr3.js │ │ │ │ ├── classexpr4.js │ │ │ │ ├── fields.js │ │ │ │ ├── seq.js │ │ │ │ ├── short-circuit.js │ │ │ │ ├── ternary.js │ │ │ │ └── tst.js │ │ │ ├── options.json │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── classexpr1.js.trap │ │ │ │ ├── classexpr2.js.trap │ │ │ │ ├── classexpr3.js.trap │ │ │ │ ├── classexpr4.js.trap │ │ │ │ ├── fields.js.trap │ │ │ │ ├── seq.js.trap │ │ │ │ ├── short-circuit.js.trap │ │ │ │ ├── ternary.js.trap │ │ │ │ └── tst.js.trap │ │ ├── closure │ │ │ ├── input │ │ │ │ ├── googDotDeclareModuleId.js │ │ │ │ ├── googDotModule.js │ │ │ │ └── googDotProvide.js │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── googDotDeclareModuleId.js.trap │ │ │ │ ├── googDotModule.js.trap │ │ │ │ └── googDotProvide.js.trap │ │ ├── comments │ │ │ ├── input │ │ │ │ ├── comments.js │ │ │ │ ├── empty_comment.js │ │ │ │ └── jsdoc.js │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── comments.js.trap │ │ │ │ ├── empty_comment.js.trap │ │ │ │ └── jsdoc.js.trap │ │ ├── default-encoding │ │ │ ├── input │ │ │ │ └── latin1.js │ │ │ ├── options.json │ │ │ └── output │ │ │ │ └── trap │ │ │ │ └── latin1.js.trap │ │ ├── e4x │ │ │ ├── input │ │ │ │ ├── regress.js │ │ │ │ └── tst.js │ │ │ ├── options.json │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── regress.js.trap │ │ │ │ └── tst.js.trap │ │ ├── encoding │ │ │ ├── input │ │ │ │ ├── surrogates.js │ │ │ │ ├── unicode.js │ │ │ │ └── zwsp.js │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── surrogates.js.trap │ │ │ │ ├── unicode.js.trap │ │ │ │ └── zwsp.js.trap │ │ ├── errors │ │ │ ├── input │ │ │ │ ├── empty.js │ │ │ │ ├── errors.js │ │ │ │ ├── incomplete.js │ │ │ │ ├── invalid-assignment-pattern.js │ │ │ │ ├── json.js │ │ │ │ ├── kwident.js │ │ │ │ └── weirdassign.js │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── empty.js.trap │ │ │ │ ├── errors.js.trap │ │ │ │ ├── incomplete.js.trap │ │ │ │ ├── invalid-assignment-pattern.js.trap │ │ │ │ ├── json.js.trap │ │ │ │ ├── kwident.js.trap │ │ │ │ └── weirdassign.js.trap │ │ ├── es2015 │ │ │ ├── input │ │ │ │ ├── array_pattern_with_default.js │ │ │ │ ├── array_pattern_with_rest.js │ │ │ │ ├── arrowfn.js │ │ │ │ ├── class_accessors.js │ │ │ │ ├── class_ctor.js │ │ │ │ ├── class_extends.js │ │ │ │ ├── class_extends2.js │ │ │ │ ├── class_method.js │ │ │ │ ├── class_static.js │ │ │ │ ├── classdecl.js │ │ │ │ ├── classexpr.js │ │ │ │ ├── classexpr2.js │ │ │ │ ├── complex_array_pattern.js │ │ │ │ ├── complex_object_pattern.js │ │ │ │ ├── const.js │ │ │ │ ├── defaultargs.js │ │ │ │ ├── delegating_yield.js │ │ │ │ ├── destructuring.js │ │ │ │ ├── export1.js │ │ │ │ ├── export10.js │ │ │ │ ├── export11.js │ │ │ │ ├── export2.js │ │ │ │ ├── export3.js │ │ │ │ ├── export4.js │ │ │ │ ├── export5.js │ │ │ │ ├── export6.js │ │ │ │ ├── export7.js │ │ │ │ ├── export8.js │ │ │ │ ├── export9.js │ │ │ │ ├── forof.js │ │ │ │ ├── import1.js │ │ │ │ ├── import2.js │ │ │ │ ├── import3.js │ │ │ │ ├── import4.js │ │ │ │ ├── import5.js │ │ │ │ ├── import6.js │ │ │ │ ├── import7.js │ │ │ │ ├── let.js │ │ │ │ ├── let2.js │ │ │ │ ├── nested_import.js │ │ │ │ ├── new_target.js │ │ │ │ ├── no-substitution.js │ │ │ │ ├── nullMethodName.js │ │ │ │ ├── odasa-2593.js │ │ │ │ ├── properties.js │ │ │ │ ├── property_pattern_with_default.js │ │ │ │ ├── restparms.js │ │ │ │ ├── restparms2.js │ │ │ │ ├── spreadelement.js │ │ │ │ ├── super_call.js │ │ │ │ ├── super_ctor.js │ │ │ │ ├── templates.js │ │ │ │ ├── unknown_meta_property.js │ │ │ │ ├── yield.js │ │ │ │ └── yield2.js │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── array_pattern_with_default.js.trap │ │ │ │ ├── array_pattern_with_rest.js.trap │ │ │ │ ├── arrowfn.js.trap │ │ │ │ ├── class_accessors.js.trap │ │ │ │ ├── class_ctor.js.trap │ │ │ │ ├── class_extends.js.trap │ │ │ │ ├── class_extends2.js.trap │ │ │ │ ├── class_method.js.trap │ │ │ │ ├── class_static.js.trap │ │ │ │ ├── classdecl.js.trap │ │ │ │ ├── classexpr.js.trap │ │ │ │ ├── classexpr2.js.trap │ │ │ │ ├── complex_array_pattern.js.trap │ │ │ │ ├── complex_object_pattern.js.trap │ │ │ │ ├── const.js.trap │ │ │ │ ├── defaultargs.js.trap │ │ │ │ ├── delegating_yield.js.trap │ │ │ │ ├── destructuring.js.trap │ │ │ │ ├── export1.js.trap │ │ │ │ ├── export10.js.trap │ │ │ │ ├── export11.js.trap │ │ │ │ ├── export2.js.trap │ │ │ │ ├── export3.js.trap │ │ │ │ ├── export4.js.trap │ │ │ │ ├── export5.js.trap │ │ │ │ ├── export6.js.trap │ │ │ │ ├── export7.js.trap │ │ │ │ ├── export8.js.trap │ │ │ │ ├── export9.js.trap │ │ │ │ ├── forof.js.trap │ │ │ │ ├── import1.js.trap │ │ │ │ ├── import2.js.trap │ │ │ │ ├── import3.js.trap │ │ │ │ ├── import4.js.trap │ │ │ │ ├── import5.js.trap │ │ │ │ ├── import6.js.trap │ │ │ │ ├── import7.js.trap │ │ │ │ ├── let.js.trap │ │ │ │ ├── let2.js.trap │ │ │ │ ├── nested_import.js.trap │ │ │ │ ├── new_target.js.trap │ │ │ │ ├── no-substitution.js.trap │ │ │ │ ├── nullMethodName.js.trap │ │ │ │ ├── odasa-2593.js.trap │ │ │ │ ├── properties.js.trap │ │ │ │ ├── property_pattern_with_default.js.trap │ │ │ │ ├── restparms.js.trap │ │ │ │ ├── restparms2.js.trap │ │ │ │ ├── spreadelement.js.trap │ │ │ │ ├── super_call.js.trap │ │ │ │ ├── super_ctor.js.trap │ │ │ │ ├── templates.js.trap │ │ │ │ ├── unknown_meta_property.js.trap │ │ │ │ ├── yield.js.trap │ │ │ │ └── yield2.js.trap │ │ ├── es2016 │ │ │ ├── input │ │ │ │ ├── exp.js │ │ │ │ └── usestrict.js │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── exp.js.trap │ │ │ │ └── usestrict.js.trap │ │ ├── es2017 │ │ │ ├── input │ │ │ │ ├── async-await.js │ │ │ │ ├── export-async-1.js │ │ │ │ ├── export-async-2.js │ │ │ │ ├── invalid-async-fn.js │ │ │ │ └── shorthand-prop-async.js │ │ │ ├── options.json │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── async-await.js.trap │ │ │ │ ├── export-async-1.js.trap │ │ │ │ ├── export-async-2.js.trap │ │ │ │ ├── invalid-async-fn.js.trap │ │ │ │ └── shorthand-prop-async.js.trap │ │ ├── es2018 │ │ │ ├── input │ │ │ │ ├── asyncIter.js │ │ │ │ └── templates.js │ │ │ ├── options.json │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── asyncIter.js.trap │ │ │ │ └── templates.js.trap │ │ ├── es2019 │ │ │ ├── input │ │ │ │ └── json-superset.js │ │ │ └── output │ │ │ │ └── trap │ │ │ │ └── json-superset.js.trap │ │ ├── es2021 │ │ │ ├── input │ │ │ │ ├── assign.js │ │ │ │ └── numeric.js │ │ │ ├── options.json │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── assign.js.trap │ │ │ │ └── numeric.js.trap │ │ ├── esnext │ │ │ ├── input │ │ │ │ ├── async-generators.js │ │ │ │ ├── catchGuardAndNoBinding.js │ │ │ │ ├── catchNoBinding.js │ │ │ │ ├── dynamic-import.js │ │ │ │ ├── fields.js │ │ │ │ ├── nullish-coalescing.js │ │ │ │ ├── optional-chaining.js │ │ │ │ ├── optional-chaining_bad1.js │ │ │ │ ├── optional-chaining_bad2.js │ │ │ │ ├── optional-chaining_bad3.js │ │ │ │ ├── optional-chaining_bad4.js │ │ │ │ ├── optional-chaining_bad5.js │ │ │ │ ├── optional-chaining_bad6.js │ │ │ │ ├── optional-chaining_short-circuiting.js │ │ │ │ ├── top-level-await.js │ │ │ │ └── yield-import.js │ │ │ ├── options.json │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── async-generators.js.trap │ │ │ │ ├── catchGuardAndNoBinding.js.trap │ │ │ │ ├── catchNoBinding.js.trap │ │ │ │ ├── dynamic-import.js.trap │ │ │ │ ├── fields.js.trap │ │ │ │ ├── nullish-coalescing.js.trap │ │ │ │ ├── optional-chaining.js.trap │ │ │ │ ├── optional-chaining_bad1.js.trap │ │ │ │ ├── optional-chaining_bad2.js.trap │ │ │ │ ├── optional-chaining_bad3.js.trap │ │ │ │ ├── optional-chaining_bad4.js.trap │ │ │ │ ├── optional-chaining_bad5.js.trap │ │ │ │ ├── optional-chaining_bad6.js.trap │ │ │ │ ├── optional-chaining_short-circuiting.js.trap │ │ │ │ ├── top-level-await.js.trap │ │ │ │ └── yield-import.js.trap │ │ ├── excludes │ │ │ ├── input │ │ │ │ ├── .jshintignore │ │ │ │ ├── a.js │ │ │ │ ├── baz │ │ │ │ │ └── a.js │ │ │ │ └── f │ │ │ │ │ ├── bar.js │ │ │ │ │ ├── empty.json │ │ │ │ │ └── foo.js │ │ │ ├── options.json │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── a.js.trap │ │ │ │ └── empty.json.trap │ │ ├── exprs │ │ │ ├── input │ │ │ │ ├── assignment.js │ │ │ │ ├── binary.js │ │ │ │ ├── comparison.js │ │ │ │ ├── fnnesting.js │ │ │ │ ├── others.js │ │ │ │ ├── parens.js │ │ │ │ ├── primaries.js │ │ │ │ ├── regexp.js │ │ │ │ ├── unary.js │ │ │ │ └── update.js │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── assignment.js.trap │ │ │ │ ├── binary.js.trap │ │ │ │ ├── comparison.js.trap │ │ │ │ ├── fnnesting.js.trap │ │ │ │ ├── others.js.trap │ │ │ │ ├── parens.js.trap │ │ │ │ ├── primaries.js.trap │ │ │ │ ├── regexp.js.trap │ │ │ │ ├── unary.js.trap │ │ │ │ └── update.js.trap │ │ ├── extensions │ │ │ ├── input │ │ │ │ ├── tst.es6 │ │ │ │ ├── tst2.es │ │ │ │ └── tst4.cjs │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── tst.es6.trap │ │ │ │ ├── tst2.es.trap │ │ │ │ └── tst4.cjs.trap │ │ ├── externs │ │ │ ├── input │ │ │ │ └── Point.js │ │ │ ├── options.json │ │ │ └── output │ │ │ │ └── trap │ │ │ │ └── Point.js.trap │ │ ├── flow │ │ │ ├── input │ │ │ │ ├── ambig.js │ │ │ │ ├── anonFunctionOptionalParm.js │ │ │ │ ├── anonFunctionReturnType.js │ │ │ │ ├── anonFunctionWithoutParens.js │ │ │ │ ├── anonIndexer.js │ │ │ │ ├── array-types.js │ │ │ │ ├── async.js │ │ │ │ ├── atAtIteratorProp.js │ │ │ │ ├── boundExplicitTypeParameters.js │ │ │ │ ├── complexParamTypes.js │ │ │ │ ├── complexParamTypes2.js │ │ │ │ ├── declareExport.js │ │ │ │ ├── declareModuleExports.js │ │ │ │ ├── declared-module-imports.js │ │ │ │ ├── explicitTypeParameters.js │ │ │ │ ├── explicitTypeParametersForArgumentlessConstructorCall.js │ │ │ │ ├── export.js │ │ │ │ ├── exportOpaqueType.js │ │ │ │ ├── get-set-methods.js │ │ │ │ ├── importNonTypeInDeclaredModule.js │ │ │ │ ├── importType.js │ │ │ │ ├── importTypeInDeclaredModule.js │ │ │ │ ├── methodTypeParams.js │ │ │ │ ├── notExplicitTypeParameters1.js │ │ │ │ ├── notExplicitTypeParameters2.js │ │ │ │ ├── notExplicitTypeParameters3.js │ │ │ │ ├── objectTypeSpread.js │ │ │ │ ├── optParms.js │ │ │ │ ├── parmAnonFunctionType.js │ │ │ │ ├── practicallyAmbigiousExplicitTypeParameters.js │ │ │ │ ├── predicate-function-annotation.js │ │ │ │ ├── qualifiedInterface.js │ │ │ │ ├── tst.js │ │ │ │ └── variance.js │ │ │ ├── options.json │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── ambig.js.trap │ │ │ │ ├── anonFunctionOptionalParm.js.trap │ │ │ │ ├── anonFunctionReturnType.js.trap │ │ │ │ ├── anonFunctionWithoutParens.js.trap │ │ │ │ ├── anonIndexer.js.trap │ │ │ │ ├── array-types.js.trap │ │ │ │ ├── async.js.trap │ │ │ │ ├── atAtIteratorProp.js.trap │ │ │ │ ├── boundExplicitTypeParameters.js.trap │ │ │ │ ├── complexParamTypes.js.trap │ │ │ │ ├── complexParamTypes2.js.trap │ │ │ │ ├── declareExport.js.trap │ │ │ │ ├── declareModuleExports.js.trap │ │ │ │ ├── declared-module-imports.js.trap │ │ │ │ ├── explicitTypeParameters.js.trap │ │ │ │ ├── explicitTypeParametersForArgumentlessConstructorCall.js.trap │ │ │ │ ├── export.js.trap │ │ │ │ ├── exportOpaqueType.js.trap │ │ │ │ ├── get-set-methods.js.trap │ │ │ │ ├── importNonTypeInDeclaredModule.js.trap │ │ │ │ ├── importType.js.trap │ │ │ │ ├── importTypeInDeclaredModule.js.trap │ │ │ │ ├── methodTypeParams.js.trap │ │ │ │ ├── notExplicitTypeParameters1.js.trap │ │ │ │ ├── notExplicitTypeParameters2.js.trap │ │ │ │ ├── notExplicitTypeParameters3.js.trap │ │ │ │ ├── objectTypeSpread.js.trap │ │ │ │ ├── optParms.js.trap │ │ │ │ ├── parmAnonFunctionType.js.trap │ │ │ │ ├── practicallyAmbigiousExplicitTypeParameters.js.trap │ │ │ │ ├── predicate-function-annotation.js.trap │ │ │ │ ├── qualifiedInterface.js.trap │ │ │ │ ├── tst.js.trap │ │ │ │ └── variance.js.trap │ │ ├── functionbind │ │ │ ├── input │ │ │ │ └── tst.js │ │ │ ├── options.json │ │ │ └── output │ │ │ │ └── trap │ │ │ │ └── tst.js.trap │ │ ├── helloworld │ │ │ ├── input │ │ │ │ └── hello.js │ │ │ └── output │ │ │ │ └── trap │ │ │ │ └── hello.js.trap │ │ ├── html-text-extraction │ │ │ ├── input │ │ │ │ └── text-examples.html │ │ │ ├── options.json │ │ │ └── output │ │ │ │ └── trap │ │ │ │ └── text-examples.html.trap │ │ ├── html │ │ │ ├── input │ │ │ │ ├── doctype.html │ │ │ │ ├── empty_script.html │ │ │ │ ├── entities.html │ │ │ │ ├── json_in_script.html │ │ │ │ ├── module.html │ │ │ │ ├── q.html │ │ │ │ ├── tst.html │ │ │ │ ├── tst.xhtml │ │ │ │ ├── tst2.html │ │ │ │ └── tst2.xhtml │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── doctype.html.trap │ │ │ │ ├── empty_script.html.trap │ │ │ │ ├── entities.html.trap │ │ │ │ ├── json_in_script.html.trap │ │ │ │ ├── module.html.trap │ │ │ │ ├── q.html.trap │ │ │ │ ├── tst.html.trap │ │ │ │ ├── tst.xhtml.trap │ │ │ │ ├── tst2.html.trap │ │ │ │ └── tst2.xhtml.trap │ │ ├── jscript │ │ │ ├── input │ │ │ │ └── tst.js │ │ │ ├── options.json │ │ │ └── output │ │ │ │ └── trap │ │ │ │ └── tst.js.trap │ │ ├── json │ │ │ ├── input │ │ │ │ ├── array.json │ │ │ │ ├── comments.json │ │ │ │ ├── duplicate-keys.json │ │ │ │ ├── empty.json │ │ │ │ ├── error.json │ │ │ │ ├── f │ │ │ │ │ └── ignored.json │ │ │ │ ├── invalid.json │ │ │ │ ├── neg.json │ │ │ │ ├── neg2.json │ │ │ │ ├── null.json │ │ │ │ ├── omitted.json │ │ │ │ └── tst.json │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── array.json.trap │ │ │ │ ├── comments.json.trap │ │ │ │ ├── duplicate-keys.json.trap │ │ │ │ ├── empty.json.trap │ │ │ │ ├── error.json.trap │ │ │ │ ├── invalid.json.trap │ │ │ │ ├── neg.json.trap │ │ │ │ ├── neg2.json.trap │ │ │ │ ├── null.json.trap │ │ │ │ ├── omitted.json.trap │ │ │ │ └── tst.json.trap │ │ ├── jsx │ │ │ ├── input │ │ │ │ ├── err1.jsx │ │ │ │ ├── err2.jsx │ │ │ │ ├── err3.jsx │ │ │ │ ├── err4.jsx │ │ │ │ ├── tst.js │ │ │ │ ├── tst.jsx │ │ │ │ └── tst2.js │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── err1.jsx.trap │ │ │ │ ├── err2.jsx.trap │ │ │ │ ├── err3.jsx.trap │ │ │ │ ├── err4.jsx.trap │ │ │ │ ├── tst.js.trap │ │ │ │ ├── tst.jsx.trap │ │ │ │ └── tst2.js.trap │ │ ├── keywords │ │ │ ├── input │ │ │ │ └── tst.js │ │ │ ├── options.json │ │ │ └── output │ │ │ │ └── trap │ │ │ │ └── tst.js.trap │ │ ├── moduleTypes1 │ │ │ ├── input │ │ │ │ ├── package.json │ │ │ │ └── tst.js │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── package.json.trap │ │ │ │ └── tst.js.trap │ │ ├── moduleTypes2 │ │ │ ├── input │ │ │ │ ├── package.json │ │ │ │ └── tst2.js │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── package.json.trap │ │ │ │ └── tst2.js.trap │ │ ├── moduleTypes3 │ │ │ ├── input │ │ │ │ ├── package.json │ │ │ │ └── tst.js │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── package.json.trap │ │ │ │ └── tst.js.trap │ │ ├── mozilla │ │ │ ├── input │ │ │ │ ├── array_comprehensions.js │ │ │ │ ├── exprfns.js │ │ │ │ ├── foreach.js │ │ │ │ ├── generator_expressions.js │ │ │ │ ├── guardedCatch.js │ │ │ │ ├── letExpr.js │ │ │ │ ├── letStmt.js │ │ │ │ ├── letStmt2.js │ │ │ │ ├── new-with-trailing-arg.js │ │ │ │ └── odasa-2593.js │ │ │ ├── options.json │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── array_comprehensions.js.trap │ │ │ │ ├── exprfns.js.trap │ │ │ │ ├── foreach.js.trap │ │ │ │ ├── generator_expressions.js.trap │ │ │ │ ├── guardedCatch.js.trap │ │ │ │ ├── letExpr.js.trap │ │ │ │ ├── letStmt.js.trap │ │ │ │ ├── letStmt2.js.trap │ │ │ │ ├── new-with-trailing-arg.js.trap │ │ │ │ └── odasa-2593.js.trap │ │ ├── ng-templates │ │ │ ├── input │ │ │ │ └── component.js │ │ │ ├── options.json │ │ │ └── output │ │ │ │ └── trap │ │ │ │ └── component.js.trap │ │ ├── node │ │ │ ├── input │ │ │ │ ├── constlet.js │ │ │ │ ├── empty │ │ │ │ ├── f │ │ │ │ │ ├── ignored.json │ │ │ │ │ └── package.json │ │ │ │ ├── g │ │ │ │ │ └── hello │ │ │ │ ├── tst.html │ │ │ │ ├── tst.js │ │ │ │ └── tst.mjs │ │ │ ├── options.json │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── constlet.js.trap │ │ │ │ ├── hello.trap │ │ │ │ ├── package.json.trap │ │ │ │ ├── tst.html.trap │ │ │ │ ├── tst.js.trap │ │ │ │ └── tst.mjs.trap │ │ ├── project-layout │ │ ├── rcfiles │ │ │ ├── input │ │ │ │ ├── .babelrc │ │ │ │ ├── .eslintrc │ │ │ │ └── .npmrc │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── .babelrc.trap │ │ │ │ └── .eslintrc.trap │ │ ├── regexp │ │ │ ├── input │ │ │ │ ├── es2018.js │ │ │ │ ├── nonstandard.js │ │ │ │ ├── odasa-1934.js │ │ │ │ └── tst.js │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── es2018.js.trap │ │ │ │ ├── nonstandard.js.trap │ │ │ │ ├── odasa-1934.js.trap │ │ │ │ └── tst.js.trap │ │ ├── restprops │ │ │ ├── input │ │ │ │ └── tst.js │ │ │ ├── options.json │ │ │ └── output │ │ │ │ └── trap │ │ │ │ └── tst.js.trap │ │ ├── shebang │ │ │ ├── input │ │ │ │ ├── not-typescript.ts │ │ │ │ ├── tst.html │ │ │ │ ├── tst.js │ │ │ │ ├── typescript-with-shebang.ts │ │ │ │ └── typescript.ts │ │ │ ├── options.json │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── tst.html.trap │ │ │ │ ├── tst.js.trap │ │ │ │ ├── typescript-with-shebang.ts.trap │ │ │ │ └── typescript.ts.trap │ │ ├── stmts │ │ │ ├── input │ │ │ │ ├── conditionals.js │ │ │ │ ├── forvardefault.js │ │ │ │ ├── functions.js │ │ │ │ ├── loops.js │ │ │ │ ├── others.js │ │ │ │ ├── switch.js │ │ │ │ ├── switch2.js │ │ │ │ ├── trivial-switch.js │ │ │ │ └── try.js │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── conditionals.js.trap │ │ │ │ ├── forvardefault.js.trap │ │ │ │ ├── functions.js.trap │ │ │ │ ├── loops.js.trap │ │ │ │ ├── others.js.trap │ │ │ │ ├── switch.js.trap │ │ │ │ ├── switch2.js.trap │ │ │ │ ├── trivial-switch.js.trap │ │ │ │ └── try.js.trap │ │ ├── strictmode │ │ │ ├── input │ │ │ │ ├── assignargs.js │ │ │ │ └── tst.js │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── assignargs.js.trap │ │ │ │ └── tst.js.trap │ │ ├── ts │ │ │ ├── input │ │ │ │ ├── arrayBindingPattern.ts │ │ │ │ ├── badimport.ts │ │ │ │ ├── bindingpattern.ts │ │ │ │ ├── bom.ts │ │ │ │ ├── classes.ts │ │ │ │ ├── comments.ts │ │ │ │ ├── conditionalTypes.ts │ │ │ │ ├── ctordecl.ts │ │ │ │ ├── declareClass.ts │ │ │ │ ├── decorators.ts │ │ │ │ ├── emptydecls.ts │ │ │ │ ├── enum.ts │ │ │ │ ├── export.ts │ │ │ │ ├── export2.ts │ │ │ │ ├── exportasnamespace.d.ts │ │ │ │ ├── exportassign.ts │ │ │ │ ├── exportclass.ts │ │ │ │ ├── exprs.ts │ │ │ │ ├── externalmodule.ts │ │ │ │ ├── functiondecorators.ts │ │ │ │ ├── hello.ts │ │ │ │ ├── importExport.ts │ │ │ │ ├── importNonStrings.ts │ │ │ │ ├── importassign.ts │ │ │ │ ├── interfaces.ts │ │ │ │ ├── invalidModuleSpecifier.ts │ │ │ │ ├── klee-binary-file.ts │ │ │ │ ├── let.ts │ │ │ │ ├── logicalOr.ts │ │ │ │ ├── mappedTypeModifiers.ts │ │ │ │ ├── mpeg-stream-fragment.ts │ │ │ │ ├── namespaces.ts │ │ │ │ ├── nestedNamespace.ts │ │ │ │ ├── nobody.ts │ │ │ │ ├── objectLiteralAccessor.ts │ │ │ │ ├── omitted.ts │ │ │ │ ├── optionalChaining.ts │ │ │ │ ├── privateField.ts │ │ │ │ ├── regexp.ts │ │ │ │ ├── restPatternWithDefault.ts │ │ │ │ ├── templates.ts │ │ │ │ ├── thisparameter.ts │ │ │ │ ├── touchstone-file.ts │ │ │ │ ├── touchstone-file2.ts │ │ │ │ ├── trust-store-file.ts │ │ │ │ ├── tryfinally.ts │ │ │ │ ├── tsx.tsx │ │ │ │ ├── typeannotations.ts │ │ │ │ ├── unicode.ts │ │ │ │ ├── unicodeId.ts │ │ │ │ ├── uninstantiatedNamespace.ts │ │ │ │ ├── xmlfile-utf16be.ts │ │ │ │ ├── xmlfile-utf16le.ts │ │ │ │ └── xmlfile.ts │ │ │ ├── options.json │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── arrayBindingPattern.ts.trap │ │ │ │ ├── badimport.ts.trap │ │ │ │ ├── bindingpattern.ts.trap │ │ │ │ ├── bom.ts.trap │ │ │ │ ├── classes.ts.trap │ │ │ │ ├── comments.ts.trap │ │ │ │ ├── conditionalTypes.ts.trap │ │ │ │ ├── ctordecl.ts.trap │ │ │ │ ├── declareClass.ts.trap │ │ │ │ ├── decorators.ts.trap │ │ │ │ ├── emptydecls.ts.trap │ │ │ │ ├── enum.ts.trap │ │ │ │ ├── export.ts.trap │ │ │ │ ├── export2.ts.trap │ │ │ │ ├── exportasnamespace.d.ts.trap │ │ │ │ ├── exportassign.ts.trap │ │ │ │ ├── exportclass.ts.trap │ │ │ │ ├── exprs.ts.trap │ │ │ │ ├── externalmodule.ts.trap │ │ │ │ ├── functiondecorators.ts.trap │ │ │ │ ├── hello.ts.trap │ │ │ │ ├── importExport.ts.trap │ │ │ │ ├── importNonStrings.ts.trap │ │ │ │ ├── importassign.ts.trap │ │ │ │ ├── interfaces.ts.trap │ │ │ │ ├── invalidModuleSpecifier.ts.trap │ │ │ │ ├── let.ts.trap │ │ │ │ ├── logicalOr.ts.trap │ │ │ │ ├── mappedTypeModifiers.ts.trap │ │ │ │ ├── namespaces.ts.trap │ │ │ │ ├── nestedNamespace.ts.trap │ │ │ │ ├── nobody.ts.trap │ │ │ │ ├── objectLiteralAccessor.ts.trap │ │ │ │ ├── omitted.ts.trap │ │ │ │ ├── optionalChaining.ts.trap │ │ │ │ ├── privateField.ts.trap │ │ │ │ ├── regexp.ts.trap │ │ │ │ ├── restPatternWithDefault.ts.trap │ │ │ │ ├── templates.ts.trap │ │ │ │ ├── thisparameter.ts.trap │ │ │ │ ├── tryfinally.ts.trap │ │ │ │ ├── tsx.tsx.trap │ │ │ │ ├── typeannotations.ts.trap │ │ │ │ ├── unicode.ts.trap │ │ │ │ ├── unicodeId.ts.trap │ │ │ │ └── uninstantiatedNamespace.ts.trap │ │ ├── v8 │ │ │ ├── input │ │ │ │ └── tst.js │ │ │ ├── options.json │ │ │ └── output │ │ │ │ └── trap │ │ │ │ └── tst.js.trap │ │ ├── variables │ │ │ ├── input │ │ │ │ ├── const.js │ │ │ │ ├── finally.js │ │ │ │ ├── switch.js │ │ │ │ ├── try.js │ │ │ │ └── variables.js │ │ │ └── output │ │ │ │ └── trap │ │ │ │ ├── const.js.trap │ │ │ │ ├── finally.js.trap │ │ │ │ ├── switch.js.trap │ │ │ │ ├── try.js.trap │ │ │ │ └── variables.js.trap │ │ ├── vue │ │ │ ├── input │ │ │ │ └── test.vue │ │ │ └── output │ │ │ │ └── trap │ │ │ │ └── test.vue.trap │ │ └── yaml │ │ │ ├── input │ │ │ ├── bad_1022_1_1.yml │ │ │ ├── cyclic.yaml │ │ │ ├── good_1021_1_1.yml │ │ │ ├── good_1_1_1021.yml │ │ │ ├── merge.yaml │ │ │ ├── orig.yml │ │ │ ├── tst.yml │ │ │ └── x_bad_1_1_1022.yml │ │ │ └── output │ │ │ └── trap │ │ │ ├── bad_1022_1_1.yml.trap │ │ │ ├── cyclic.yaml.trap │ │ │ ├── good_1021_1_1.yml.trap │ │ │ ├── good_1_1_1021.yml.trap │ │ │ ├── merge.yaml.trap │ │ │ ├── orig.yml.trap │ │ │ ├── tst.yml.trap │ │ │ └── x_bad_1_1_1022.yml.trap │ └── util │ │ └── dotify-cfg.sh ├── ql │ ├── examples │ │ ├── qlpack.yml │ │ ├── queries.xml │ │ ├── queries │ │ │ └── dataflow │ │ │ │ ├── BackendIdor │ │ │ │ └── BackendIdor.ql │ │ │ │ ├── DecodingAfterSanitization │ │ │ │ ├── DecodingAfterSanitization.ql │ │ │ │ └── DecodingAfterSanitizationGeneralized.ql │ │ │ │ ├── EvalTaint │ │ │ │ ├── EvalTaint.ql │ │ │ │ └── EvalTaintPath.ql │ │ │ │ ├── InformationDisclosure │ │ │ │ └── InformationDisclosure.ql │ │ │ │ ├── StoredXss │ │ │ │ ├── StoredXss.ql │ │ │ │ └── StoredXssTypeTracking.ql │ │ │ │ └── TemplateInjection │ │ │ │ └── TemplateInjection.ql │ │ └── snippets │ │ │ ├── argumentsparam.ql │ │ │ ├── call.ql │ │ │ ├── callback.ql │ │ │ ├── classdefltctor.ql │ │ │ ├── classname.ql │ │ │ ├── constantbrackets.ql │ │ │ ├── emptyblock.ql │ │ │ ├── emptythen.ql │ │ │ ├── equalitystmt.ql │ │ │ ├── evenness.ql │ │ │ ├── exportfn.ql │ │ │ ├── filename.ql │ │ │ ├── fnnoreturn.ql │ │ │ ├── generator.ql │ │ │ ├── iife.ql │ │ │ ├── importfrom.ql │ │ │ ├── jsxattribute.ql │ │ │ ├── methodcall.ql │ │ │ ├── namedfnexpr.ql │ │ │ ├── newexpr.ql │ │ │ ├── propaccess.ql │ │ │ ├── rendermethod.ql │ │ │ ├── singlequotestring.ql │ │ │ ├── singletonblock.ql │ │ │ ├── taggedtemplates.ql │ │ │ ├── todocomment.ql │ │ │ ├── toomanyparams.ql │ │ │ ├── vardecl.ql │ │ │ ├── varref.ql │ │ │ └── yieldundefined.ql │ ├── src │ │ ├── .project │ │ ├── .qlpath │ │ ├── .vs │ │ │ └── VSWorkspaceSettings.json │ │ ├── AlertSuppression.ql │ │ ├── AngularJS │ │ │ ├── DeadAngularJSEventListener.qhelp │ │ │ ├── DeadAngularJSEventListener.ql │ │ │ ├── DependencyMismatch.qhelp │ │ │ ├── DependencyMismatch.ql │ │ │ ├── DisablingSce.qhelp │ │ │ ├── DisablingSce.ql │ │ │ ├── DoubleCompilation.qhelp │ │ │ ├── DoubleCompilation.ql │ │ │ ├── DuplicateDependency.qhelp │ │ │ ├── DuplicateDependency.ql │ │ │ ├── IncompatibleService.qhelp │ │ │ ├── IncompatibleService.ql │ │ │ ├── InsecureUrlWhitelist.qhelp │ │ │ ├── InsecureUrlWhitelist.ql │ │ │ ├── MissingExplicitInjection.qhelp │ │ │ ├── MissingExplicitInjection.ql │ │ │ ├── RepeatedInjection.qhelp │ │ │ ├── RepeatedInjection.ql │ │ │ ├── UnusedAngularDependency.qhelp │ │ │ ├── UnusedAngularDependency.ql │ │ │ ├── UseNgSrc.qhelp │ │ │ ├── UseNgSrc.ql │ │ │ └── examples │ │ │ │ ├── DeadAngularJSEventListener.js │ │ │ │ ├── DeadAngularJSEventListener_emit.js │ │ │ │ ├── DeadAngularJSEventListener_fixed.js │ │ │ │ ├── DependencyMismatch.js │ │ │ │ ├── DependencyMismatchGood.js │ │ │ │ ├── DisablingSce.js │ │ │ │ ├── DisablingSce_better.js │ │ │ │ ├── DoubleCompilation.js │ │ │ │ ├── DoubleCompilationGood.js │ │ │ │ ├── DuplicateDependency-fixed.js │ │ │ │ ├── DuplicateDependency.js │ │ │ │ ├── ImplicitDependency-explicit.js │ │ │ │ ├── ImplicitDependency-minified.js │ │ │ │ ├── ImplicitDependency.js │ │ │ │ ├── IncompatibleService-fixed.js │ │ │ │ ├── IncompatibleService.js │ │ │ │ ├── InsecureUrlWhitelist.js │ │ │ │ ├── RepeatedInjection-fixed.js │ │ │ │ ├── RepeatedInjection.js │ │ │ │ ├── UnusedAngularDependency.js │ │ │ │ ├── UseNgSrc.html │ │ │ │ └── UseNgSrcGood.html │ │ ├── Comments │ │ │ ├── CommentedOut.qll │ │ │ ├── CommentedOutCode.qhelp │ │ │ ├── CommentedOutCode.ql │ │ │ ├── CommentedOutCodeCommon.inc.qhelp │ │ │ ├── CommentedOutCodeMetricOverview.inc.qhelp │ │ │ ├── CommentedOutCodeQuery.inc.qhelp │ │ │ ├── CommentedOutCodeReferences.inc.qhelp │ │ │ ├── FCommentedOutCode.qhelp │ │ │ ├── FCommentedOutCode.ql │ │ │ ├── TodoComments.qhelp │ │ │ ├── TodoComments.ql │ │ │ └── examples │ │ │ │ ├── CommentedOutCode.js │ │ │ │ └── TodoComments.js │ │ ├── Customizations.qll │ │ ├── DOM │ │ │ ├── Alert.qhelp │ │ │ ├── Alert.ql │ │ │ ├── AmbiguousIdAttribute.qhelp │ │ │ ├── AmbiguousIdAttribute.ql │ │ │ ├── ConflictingAttributes.qhelp │ │ │ ├── ConflictingAttributes.ql │ │ │ ├── DuplicateAttributes.qhelp │ │ │ ├── DuplicateAttributes.ql │ │ │ ├── MalformedIdAttribute.qhelp │ │ │ ├── MalformedIdAttribute.ql │ │ │ ├── PseudoEval.qhelp │ │ │ ├── PseudoEval.ql │ │ │ ├── TargetBlank.qhelp │ │ │ ├── TargetBlank.ql │ │ │ └── examples │ │ │ │ ├── Alert.js │ │ │ │ ├── AmbiguousIdAttribute.html │ │ │ │ ├── AmbiguousIdAttributeGood.html │ │ │ │ ├── ConflictingAttributes.html │ │ │ │ ├── ConflictingAttributesGood.html │ │ │ │ ├── DuplicateAttributes.html │ │ │ │ ├── DuplicateAttributesGood.html │ │ │ │ ├── MalformedIdAttribute.html │ │ │ │ ├── MalformedIdAttributeGood.html │ │ │ │ ├── PseudoEval.js │ │ │ │ ├── PseudoEvalGood.js │ │ │ │ ├── TargetBlank.js │ │ │ │ └── TargetBlankGood.js │ │ ├── Declarations │ │ │ ├── ArgumentsRedefined.qhelp │ │ │ ├── ArgumentsRedefined.ql │ │ │ ├── AssignmentToConst.qhelp │ │ │ ├── AssignmentToConst.ql │ │ │ ├── ClobberingVarInit.qhelp │ │ │ ├── ClobberingVarInit.ql │ │ │ ├── ConflictingFunctions.qhelp │ │ │ ├── ConflictingFunctions.ql │ │ │ ├── DeadStore.inc.qhelp │ │ │ ├── DeadStore.qll │ │ │ ├── DeadStoreOfGlobal.qhelp │ │ │ ├── DeadStoreOfGlobal.ql │ │ │ ├── DeadStoreOfLocal.qhelp │ │ │ ├── DeadStoreOfLocal.ql │ │ │ ├── DeadStoreOfProperty.qhelp │ │ │ ├── DeadStoreOfProperty.ql │ │ │ ├── DeclBeforeUse.qhelp │ │ │ ├── DeclBeforeUse.ql │ │ │ ├── Declarations.qll │ │ │ ├── DefaultArgumentReferencesNestedFunction.qhelp │ │ │ ├── DefaultArgumentReferencesNestedFunction.ql │ │ │ ├── Definitions.qll │ │ │ ├── DuplicateVarDecl.qhelp │ │ │ ├── DuplicateVarDecl.ql │ │ │ ├── IneffectiveParameterType.qhelp │ │ │ ├── IneffectiveParameterType.ql │ │ │ ├── MissingThisQualifier.qhelp │ │ │ ├── MissingThisQualifier.ql │ │ │ ├── MissingVarDecl.qhelp │ │ │ ├── MissingVarDecl.ql │ │ │ ├── MixedStaticInstanceThisAccess.qhelp │ │ │ ├── MixedStaticInstanceThisAccess.ql │ │ │ ├── RedeclaredVariable.qhelp │ │ │ ├── RedeclaredVariable.ql │ │ │ ├── SuspiciousMethodNameDeclaration.qhelp │ │ │ ├── SuspiciousMethodNameDeclaration.ql │ │ │ ├── TemporalDeadZone.qhelp │ │ │ ├── TemporalDeadZone.ql │ │ │ ├── TooManyParameters.qhelp │ │ │ ├── TooManyParameters.ql │ │ │ ├── UniqueParameterNames.qhelp │ │ │ ├── UniqueParameterNames.ql │ │ │ ├── UniquePropertyNames.qhelp │ │ │ ├── UniquePropertyNames.ql │ │ │ ├── UnreachableMethodOverloads.qhelp │ │ │ ├── UnreachableMethodOverloads.ql │ │ │ ├── UnstableCyclicImport.qhelp │ │ │ ├── UnstableCyclicImport.ql │ │ │ ├── UnusedParameter.qhelp │ │ │ ├── UnusedParameter.ql │ │ │ ├── UnusedParameter.qll │ │ │ ├── UnusedProperty.qhelp │ │ │ ├── UnusedProperty.ql │ │ │ ├── UnusedVariable.qhelp │ │ │ ├── UnusedVariable.ql │ │ │ ├── UnusedVariable.qll │ │ │ └── examples │ │ │ │ ├── ArgumentsRedefined.js │ │ │ │ ├── AssignmentToConst.js │ │ │ │ ├── AssignmentToConstGood.js │ │ │ │ ├── BuiltinRedefined.js │ │ │ │ ├── ClobberingVarInit.js │ │ │ │ ├── ClobberingVarInitGood.js │ │ │ │ ├── ConflictingFunctions.js │ │ │ │ ├── ConflictingFunctionsGood.js │ │ │ │ ├── DeadStoreOfGlobal.js │ │ │ │ ├── DeadStoreOfGlobalGood.js │ │ │ │ ├── DeadStoreOfLocal.js │ │ │ │ ├── DeadStoreOfLocalGood.js │ │ │ │ ├── DeclBeforeUse.js │ │ │ │ ├── DefaultArgumentReferencesNestedFunction.js │ │ │ │ ├── DefaultArgumentReferencesNestedFunctionGood.js │ │ │ │ ├── DuplicateVarDecl.js │ │ │ │ ├── IneffectiveParameterType.ts │ │ │ │ ├── IneffectiveParameterTypeGood.ts │ │ │ │ ├── InefficientMethodDefinition.js │ │ │ │ ├── InefficientMethodDefinitionGood.js │ │ │ │ ├── MissingThisQualifier1.js │ │ │ │ ├── MissingVarDecl.js │ │ │ │ ├── RedeclaredVariable.js │ │ │ │ ├── SuspiciousMethodNameDeclaration.ts │ │ │ │ ├── SuspiciousMethodNameDeclarationFixed.ts │ │ │ │ ├── TemporalDeadZone.js │ │ │ │ ├── TemporalDeadZoneGood.js │ │ │ │ ├── TooManyParameters.js │ │ │ │ ├── TooManyParametersGood.js │ │ │ │ ├── UniqueParameterNames.js │ │ │ │ ├── UniquePropertyNames.js │ │ │ │ ├── UnreachableMethodOverloads.ts │ │ │ │ ├── UnreachableMethodOverloadsGood.ts │ │ │ │ ├── UnreachableMethodOverloadsTypeParameters.ts │ │ │ │ ├── UnreachableMethodOverloadsTypeParametersGood.ts │ │ │ │ ├── UnstableCyclicImport.js │ │ │ │ ├── UnstableCyclicImportGood.js │ │ │ │ ├── UnusedParameter.js │ │ │ │ ├── UnusedProperty.js │ │ │ │ ├── UnusedVariable.js │ │ │ │ ├── UnusedVariable2.js │ │ │ │ ├── UnusedVariable2Good.js │ │ │ │ ├── UnusedVariable3.js │ │ │ │ ├── UnusedVariable3Good.js │ │ │ │ └── staticInstance.js │ │ ├── Electron │ │ │ ├── AllowRunningInsecureContent.qhelp │ │ │ ├── AllowRunningInsecureContent.ql │ │ │ ├── DisablingWebSecurity.qhelp │ │ │ ├── DisablingWebSecurity.ql │ │ │ ├── EnablingNodeIntegration.qhelp │ │ │ ├── EnablingNodeIntegration.ql │ │ │ └── examples │ │ │ │ ├── AllowRunningInsecureContent.js │ │ │ │ ├── DisablingWebSecurity.js │ │ │ │ └── EnablingNodeIntegration.js │ │ ├── Expressions │ │ │ ├── BitwiseSignCheck.qhelp │ │ │ ├── BitwiseSignCheck.ql │ │ │ ├── Clones.qll │ │ │ ├── CompareIdenticalValues.qhelp │ │ │ ├── CompareIdenticalValues.ql │ │ │ ├── ComparisonWithNaN.qhelp │ │ │ ├── ComparisonWithNaN.ql │ │ │ ├── DOMProperties.qll │ │ │ ├── DuplicateCondition.qhelp │ │ │ ├── DuplicateCondition.ql │ │ │ ├── DuplicateProperty.qhelp │ │ │ ├── DuplicateProperty.ql │ │ │ ├── DuplicateSwitchCase.qhelp │ │ │ ├── DuplicateSwitchCase.ql │ │ │ ├── ExprHasNoEffect.qhelp │ │ │ ├── ExprHasNoEffect.ql │ │ │ ├── ExprHasNoEffect.qll │ │ │ ├── HeterogeneousComparison.qhelp │ │ │ ├── HeterogeneousComparison.ql │ │ │ ├── ImplicitOperandConversion.qhelp │ │ │ ├── ImplicitOperandConversion.ql │ │ │ ├── MissingAwait.qhelp │ │ │ ├── MissingAwait.ql │ │ │ ├── MissingDotLengthInComparison.qhelp │ │ │ ├── MissingDotLengthInComparison.ql │ │ │ ├── MissingSpaceInAppend.qhelp │ │ │ ├── MissingSpaceInAppend.ql │ │ │ ├── MisspelledIdentifier.qhelp │ │ │ ├── MisspelledIdentifier.ql │ │ │ ├── MisspelledVariableName.qhelp │ │ │ ├── MisspelledVariableName.ql │ │ │ ├── Misspelling.qll │ │ │ ├── RedundantExpression.qhelp │ │ │ ├── RedundantExpression.ql │ │ │ ├── SelfAssignment.qhelp │ │ │ ├── SelfAssignment.ql │ │ │ ├── ShiftOutOfRange.qhelp │ │ │ ├── ShiftOutOfRange.ql │ │ │ ├── StringInsteadOfRegex.qhelp │ │ │ ├── StringInsteadOfRegex.ql │ │ │ ├── SuspiciousInvocation.qhelp │ │ │ ├── SuspiciousInvocation.ql │ │ │ ├── SuspiciousPropAccess.qhelp │ │ │ ├── SuspiciousPropAccess.ql │ │ │ ├── TypoDatabase.qll │ │ │ ├── UnboundEventHandlerReceiver.qhelp │ │ │ ├── UnboundEventHandlerReceiver.ql │ │ │ ├── UnclearOperatorPrecedence.qhelp │ │ │ ├── UnclearOperatorPrecedence.ql │ │ │ ├── UnknownDirective.qhelp │ │ │ ├── UnknownDirective.ql │ │ │ ├── UnneededDefensiveProgramming.qhelp │ │ │ ├── UnneededDefensiveProgramming.ql │ │ │ ├── WhitespaceContradictsPrecedence.qhelp │ │ │ ├── WhitespaceContradictsPrecedence.ql │ │ │ └── examples │ │ │ │ ├── BadParityCheck.js │ │ │ │ ├── BadParityCheckGood.js │ │ │ │ ├── BitwiseSignCheck.js │ │ │ │ ├── BitwiseSignCheckGood.js │ │ │ │ ├── CompareIdenticalValues.js │ │ │ │ ├── CompareIdenticalValuesGood.js │ │ │ │ ├── DuplicateCondition.js │ │ │ │ ├── DuplicateConditionGood.js │ │ │ │ ├── DuplicateProperty.js │ │ │ │ ├── DuplicatePropertyGood.js │ │ │ │ ├── DuplicateSwitchCase.js │ │ │ │ ├── DuplicateSwitchCaseGood.js │ │ │ │ ├── ExprHasNoEffect-PseudoDecl.js │ │ │ │ ├── ExprHasNoEffect-PseudoDeclGood.js │ │ │ │ ├── ExprHasNoEffect.js │ │ │ │ ├── ExprHasNoEffectGood.js │ │ │ │ ├── HapaxLegomenon.js │ │ │ │ ├── HapaxLegomenonGood.js │ │ │ │ ├── HeterogeneousComparison.js │ │ │ │ ├── HeterogeneousComparison2.js │ │ │ │ ├── HeterogeneousComparison2Good.js │ │ │ │ ├── HeterogeneousComparisonGood.js │ │ │ │ ├── ImplicitOperandConversion.js │ │ │ │ ├── ImplicitOperandConversion2.js │ │ │ │ ├── ImplicitOperandConversion2Good.js │ │ │ │ ├── ImplicitOperandConversion2Good2.js │ │ │ │ ├── ImplicitOperandConversionGood.js │ │ │ │ ├── MissingAwait.js │ │ │ │ ├── MissingAwaitGood.js │ │ │ │ ├── MissingDotLengthInComparison.js │ │ │ │ ├── MissingDotLengthInComparisonGood.js │ │ │ │ ├── MissingSpaceInAppend.js │ │ │ │ ├── MisspelledIdentifier.js │ │ │ │ ├── MisspelledVariableName.js │ │ │ │ ├── RedundantExpression.js │ │ │ │ ├── RedundantExpressionGood.js │ │ │ │ ├── RedundantExpressionGood2.js │ │ │ │ ├── SelfAssignment.js │ │ │ │ ├── SelfAssignmentGood.js │ │ │ │ ├── ShiftOutOfRange.js │ │ │ │ ├── ShiftOutOfRangeGood.js │ │ │ │ ├── SuspiciousInvocation.js │ │ │ │ ├── SuspiciousInvocationGood.js │ │ │ │ ├── SuspiciousInvocationGood2.js │ │ │ │ ├── SuspiciousPropAccess.js │ │ │ │ ├── SuspiciousPropAccessGood.js │ │ │ │ ├── UnboundEventHandlerReceiver.js │ │ │ │ ├── UnboundEventHandlerReceiver_fixed.js │ │ │ │ ├── UnclearOperatorPrecedence.js │ │ │ │ ├── UnknownDirective.js │ │ │ │ ├── UnneededDefensiveProgramming1_bad.js │ │ │ │ ├── UnneededDefensiveProgramming1_good.js │ │ │ │ ├── UnneededDefensiveProgramming2_bad.js │ │ │ │ ├── UnneededDefensiveProgramming2_good.js │ │ │ │ ├── WhitespaceContradictsPrecedence.js │ │ │ │ └── WhitespaceContradictsPrecedenceGood.js │ │ ├── IDEContextual.qll │ │ ├── JSDoc │ │ │ ├── BadParamTag.qhelp │ │ │ ├── BadParamTag.ql │ │ │ ├── JSDocForNonExistentParameter.qhelp │ │ │ ├── JSDocForNonExistentParameter.ql │ │ │ ├── UndocumentedParameter.qhelp │ │ │ ├── UndocumentedParameter.ql │ │ │ └── examples │ │ │ │ ├── BadParamTag.js │ │ │ │ ├── JSDocForNonExistentParameter.js │ │ │ │ ├── UndocumentedParameter.js │ │ │ │ └── UnknownTagType.js │ │ ├── JSLint │ │ │ └── examples │ │ │ │ ├── MalformedJSLintDirective.js │ │ │ │ └── MalformedJSLintDirectiveGood.js │ │ ├── LanguageFeatures │ │ │ ├── ArgumentsCallerCallee.qhelp │ │ │ ├── ArgumentsCallerCallee.ql │ │ │ ├── BadTypeof.qhelp │ │ │ ├── BadTypeof.ql │ │ │ ├── ConditionalComments.qhelp │ │ │ ├── ConditionalComments.ql │ │ │ ├── DebuggerStatement.qhelp │ │ │ ├── DebuggerStatement.ql │ │ │ ├── DeleteVar.qhelp │ │ │ ├── DeleteVar.ql │ │ │ ├── EmptyArrayInit.qhelp │ │ │ ├── EmptyArrayInit.ql │ │ │ ├── Eval.qhelp │ │ │ ├── Eval.ql │ │ │ ├── ExpressionClosures.qhelp │ │ │ ├── ExpressionClosures.ql │ │ │ ├── ForInComprehensionBlocks.qhelp │ │ │ ├── ForInComprehensionBlocks.ql │ │ │ ├── IllegalInvocation.qhelp │ │ │ ├── IllegalInvocation.ql │ │ │ ├── InconsistentNew.qhelp │ │ │ ├── InconsistentNew.ql │ │ │ ├── InvalidPrototype.qhelp │ │ │ ├── InvalidPrototype.ql │ │ │ ├── JumpFromFinally.qhelp │ │ │ ├── JumpFromFinally.ql │ │ │ ├── LengthComparisonOffByOne.qhelp │ │ │ ├── LengthComparisonOffByOne.ql │ │ │ ├── NonLinearPattern.qhelp │ │ │ ├── NonLinearPattern.ql │ │ │ ├── PropertyWriteOnPrimitive.qhelp │ │ │ ├── PropertyWriteOnPrimitive.ql │ │ │ ├── SemicolonInsertion.qhelp │ │ │ ├── SemicolonInsertion.ql │ │ │ ├── SetterIgnoresParameter.qhelp │ │ │ ├── SetterIgnoresParameter.ql │ │ │ ├── SetterReturn.qhelp │ │ │ ├── SetterReturn.ql │ │ │ ├── SpuriousArguments.qhelp │ │ │ ├── SpuriousArguments.ql │ │ │ ├── StrictModeCallStackIntrospection.qhelp │ │ │ ├── StrictModeCallStackIntrospection.ql │ │ │ ├── SyntaxError.qhelp │ │ │ ├── SyntaxError.ql │ │ │ ├── TemplateSyntaxInStringLiteral.qhelp │ │ │ ├── TemplateSyntaxInStringLiteral.ql │ │ │ ├── ThisBeforeSuper.qhelp │ │ │ ├── ThisBeforeSuper.ql │ │ │ ├── UnusedIndexVariable.qhelp │ │ │ ├── UnusedIndexVariable.ql │ │ │ ├── UnusedIndexVariable.qll │ │ │ ├── WithStatement.qhelp │ │ │ ├── WithStatement.ql │ │ │ ├── WrongExtensionJSON.qhelp │ │ │ ├── WrongExtensionJSON.ql │ │ │ ├── YieldInNonGenerator.qhelp │ │ │ ├── YieldInNonGenerator.ql │ │ │ └── examples │ │ │ │ ├── ArgumentsCallerCallee.js │ │ │ │ ├── ArgumentsCallerCalleeGood.js │ │ │ │ ├── BadTypeof.js │ │ │ │ ├── BadTypeofGood.js │ │ │ │ ├── ConditionalComments.js │ │ │ │ ├── DebuggerStatement.js │ │ │ │ ├── DeleteVar.js │ │ │ │ ├── DeleteVarGood.js │ │ │ │ ├── EmptyArrayInit.js │ │ │ │ ├── EmptyArrayInitGood.js │ │ │ │ ├── Eval.js │ │ │ │ ├── Eval2.js │ │ │ │ ├── EvalGood.js │ │ │ │ ├── ExpressionClosures.js │ │ │ │ ├── ExpressionClosuresGood.js │ │ │ │ ├── ExpressionClosuresGood2.js │ │ │ │ ├── ForInComprehensionBlocks.js │ │ │ │ ├── ForInComprehensionBlocksGood.js │ │ │ │ ├── HTMLComments.js │ │ │ │ ├── HTMLCommentsGood.js │ │ │ │ ├── InconsistentNew.js │ │ │ │ ├── InconsistentNewGood.js │ │ │ │ ├── InconsistentNewGood2.js │ │ │ │ ├── JumpFromFinally.js │ │ │ │ ├── JumpFromFinallyGood.js │ │ │ │ ├── LengthComparisonOffByOne.js │ │ │ │ ├── LengthComparisonOffByOneGood.js │ │ │ │ ├── LetStatement.js │ │ │ │ ├── LetStatementGood.js │ │ │ │ ├── MultilineStringLiteral.js │ │ │ │ ├── MultilineStringLiteralGood.js │ │ │ │ ├── NonLinearPattern.js │ │ │ │ ├── NonLinearPatternGood.js │ │ │ │ ├── NonLinearPatternTS.ts │ │ │ │ ├── NonLinearPatternTSGood.ts │ │ │ │ ├── OctalLiteral.js │ │ │ │ ├── PostfixComprehension.js │ │ │ │ ├── PostfixComprehensionGood.js │ │ │ │ ├── ReservedWords.js │ │ │ │ ├── SemicolonInsertion.js │ │ │ │ ├── SemicolonInsertionGood.js │ │ │ │ ├── SetterIgnoresParameter.js │ │ │ │ ├── SetterIgnoresParameterGood.js │ │ │ │ ├── SetterReturn.js │ │ │ │ ├── SetterReturnGood.js │ │ │ │ ├── SpuriousArguments.js │ │ │ │ ├── SyntaxError.js │ │ │ │ ├── TemplateSyntaxInStringLiteral.js │ │ │ │ ├── TemplateSyntaxInStringLiteralGood.js │ │ │ │ ├── TrailingComma.js │ │ │ │ ├── UnusedIndexVariable.js │ │ │ │ ├── UnusedIndexVariableGood.js │ │ │ │ ├── UnusedIndexVariableGood2.js │ │ │ │ ├── WithStatement.js │ │ │ │ ├── WithStatementGood.js │ │ │ │ ├── YieldInNonGenerator.js │ │ │ │ └── YieldInNonGeneratorGood.js │ │ ├── Metrics │ │ │ ├── Dependencies │ │ │ │ ├── ExternalDependencies.ql │ │ │ │ ├── ExternalDependencies.qll │ │ │ │ └── ExternalDependenciesSourceLinks.ql │ │ │ ├── DuplicationProblems.inc.qhelp │ │ │ ├── ES20xxFeatures.qll │ │ │ ├── FCommentRatio.qhelp │ │ │ ├── FCommentRatio.ql │ │ │ ├── FCommentRatioCommon.inc.qhelp │ │ │ ├── FCyclomaticComplexity.js │ │ │ ├── FCyclomaticComplexity.qhelp │ │ │ ├── FCyclomaticComplexity.ql │ │ │ ├── FCyclomaticComplexity_ControlFlow.gv │ │ │ ├── FCyclomaticComplexity_ControlFlow.png │ │ │ ├── FFunctions.qhelp │ │ │ ├── FFunctions.ql │ │ │ ├── FLines.ql │ │ │ ├── FLinesOfCode.qhelp │ │ │ ├── FLinesOfCode.ql │ │ │ ├── FLinesOfCodeOverview.inc.qhelp │ │ │ ├── FLinesOfCodeReferences.inc.qhelp │ │ │ ├── FLinesOfComment.qhelp │ │ │ ├── FLinesOfComment.ql │ │ │ ├── FLinesOfDuplicatedCode.qhelp │ │ │ ├── FLinesOfDuplicatedCode.ql │ │ │ ├── FLinesOfDuplicatedCodeCommon.inc.qhelp │ │ │ ├── FLinesOfSimilarCode.qhelp │ │ │ ├── FLinesOfSimilarCode.ql │ │ │ ├── FLinesOfSimilarCodeCommon.inc.qhelp │ │ │ ├── FNumberOfStatements.qhelp │ │ │ ├── FNumberOfStatements.ql │ │ │ ├── FNumberOfTests.qhelp │ │ │ ├── FNumberOfTests.ql │ │ │ ├── FUseOfES6.qhelp │ │ │ ├── FUseOfES6.ql │ │ │ ├── FunCyclomaticComplexity.qhelp │ │ │ ├── FunCyclomaticComplexity.ql │ │ │ ├── FunLinesOfCode.qhelp │ │ │ └── FunLinesOfCode.ql │ │ ├── NodeJS │ │ │ ├── CyclicImport.qhelp │ │ │ ├── CyclicImport.ql │ │ │ ├── DubiousImport.qhelp │ │ │ ├── DubiousImport.ql │ │ │ ├── InvalidExport.qhelp │ │ │ ├── InvalidExport.ql │ │ │ ├── MissingExports.qhelp │ │ │ ├── MissingExports.ql │ │ │ ├── UnresolvableImport.qhelp │ │ │ ├── UnresolvableImport.ql │ │ │ ├── UnusedDependency.qhelp │ │ │ ├── UnusedDependency.ql │ │ │ └── examples │ │ │ │ ├── CyclicImport.js │ │ │ │ ├── CyclicImportGood.js │ │ │ │ ├── DubiousImport.js │ │ │ │ ├── DubiousImportGood.js │ │ │ │ ├── InvalidExport.js │ │ │ │ ├── InvalidExportGood.js │ │ │ │ ├── MissingExports.js │ │ │ │ ├── MissingExportsGood.js │ │ │ │ ├── UnresolvableImport.js │ │ │ │ ├── UnresolvableImportGood.js │ │ │ │ └── UnusedDependency.js │ │ ├── Performance │ │ │ ├── NonLocalForIn.qhelp │ │ │ ├── NonLocalForIn.ql │ │ │ ├── PolynomialReDoS.qhelp │ │ │ ├── PolynomialReDoS.ql │ │ │ ├── ReDoS.qhelp │ │ │ ├── ReDoS.ql │ │ │ ├── ReDoSIntroduction.inc.qhelp │ │ │ ├── ReDoSReferences.inc.qhelp │ │ │ ├── ReassignParameterAndUseArguments.qhelp │ │ │ ├── ReassignParameterAndUseArguments.ql │ │ │ └── examples │ │ │ │ ├── NonLocalForIn.js │ │ │ │ ├── NonLocalForIn2.js │ │ │ │ ├── NonLocalForIn2Good.js │ │ │ │ ├── NonLocalForInGood.js │ │ │ │ ├── ReassignParameterAndUseArguments.js │ │ │ │ ├── ReassignParameterAndUseArgumentsGood1.js │ │ │ │ └── ReassignParameterAndUseArgumentsGood2.js │ │ ├── React │ │ │ ├── DirectStateMutation.qhelp │ │ │ ├── DirectStateMutation.ql │ │ │ ├── InconsistentStateUpdate.qhelp │ │ │ ├── InconsistentStateUpdate.ql │ │ │ ├── UnsupportedStateUpdateInLifecycleMethod.qhelp │ │ │ ├── UnsupportedStateUpdateInLifecycleMethod.ql │ │ │ ├── UnusedOrUndefinedStateProperty.qhelp │ │ │ ├── UnusedOrUndefinedStateProperty.ql │ │ │ └── examples │ │ │ │ ├── UnusedOrUndefinedStateProperty.js │ │ │ │ ├── UnusedOrUndefinedStateProperty_fixed.js │ │ │ │ ├── unsupported-state-update-in-lifecycle-method.js │ │ │ │ └── unsupported-state-update-in-lifecycle-method_fixed.js │ │ ├── RegExp │ │ │ ├── BackrefBeforeGroup.qhelp │ │ │ ├── BackrefBeforeGroup.ql │ │ │ ├── BackrefIntoNegativeLookahead.qhelp │ │ │ ├── BackrefIntoNegativeLookahead.ql │ │ │ ├── BackspaceEscape.qhelp │ │ │ ├── BackspaceEscape.ql │ │ │ ├── DuplicateCharacterInCharacterClass.qhelp │ │ │ ├── DuplicateCharacterInCharacterClass.ql │ │ │ ├── EmptyCharacterClass.qhelp │ │ │ ├── EmptyCharacterClass.ql │ │ │ ├── IdentityReplacement.qhelp │ │ │ ├── IdentityReplacement.ql │ │ │ ├── MalformedRegExp.qhelp │ │ │ ├── MalformedRegExp.ql │ │ │ ├── RegExpAlwaysMatches.qhelp │ │ │ ├── RegExpAlwaysMatches.ql │ │ │ ├── UnboundBackref.qhelp │ │ │ ├── UnboundBackref.ql │ │ │ ├── UnmatchableCaret.qhelp │ │ │ ├── UnmatchableCaret.ql │ │ │ ├── UnmatchableDollar.qhelp │ │ │ ├── UnmatchableDollar.ql │ │ │ └── examples │ │ │ │ ├── BackrefBeforeGroup.js │ │ │ │ ├── BackrefIntoNegativeLookahead.js │ │ │ │ ├── BackspaceEscape.js │ │ │ │ ├── DuplicateCharacterInCharacterClass.js │ │ │ │ ├── EmptyCharacterClass.js │ │ │ │ ├── IdentityReplacement.js │ │ │ │ ├── IdentityReplacementGood.js │ │ │ │ ├── MalformedRegExp.js │ │ │ │ ├── RegExpAlwaysMatches.js │ │ │ │ ├── RegExpAlwaysMatchesGood.js │ │ │ │ ├── UnboundBackref.js │ │ │ │ ├── UnmatchableCaret.js │ │ │ │ └── UnmatchableDollar.js │ │ ├── Security │ │ │ ├── CWE-020 │ │ │ │ ├── ExternalAPISinkExample.js │ │ │ │ ├── ExternalAPITaintStepExample.js │ │ │ │ ├── ExternalAPIsUsedWithUntrustedData.qhelp │ │ │ │ ├── ExternalAPIsUsedWithUntrustedData.ql │ │ │ │ ├── HostnameRegexpShared.qll │ │ │ │ ├── IncompleteHostnameRegExp.qhelp │ │ │ │ ├── IncompleteHostnameRegExp.ql │ │ │ │ ├── IncompleteUrlSchemeCheck.qhelp │ │ │ │ ├── IncompleteUrlSchemeCheck.ql │ │ │ │ ├── IncompleteUrlSubstringSanitization.qhelp │ │ │ │ ├── IncompleteUrlSubstringSanitization.ql │ │ │ │ ├── IncorrectSuffixCheck.qhelp │ │ │ │ ├── IncorrectSuffixCheck.ql │ │ │ │ ├── MissingRegExpAnchor.qhelp │ │ │ │ ├── MissingRegExpAnchor.ql │ │ │ │ ├── UntrustedDataToExternalAPI.qhelp │ │ │ │ ├── UntrustedDataToExternalAPI.ql │ │ │ │ ├── UselessRegExpCharacterEscape.qhelp │ │ │ │ ├── UselessRegExpCharacterEscape.ql │ │ │ │ └── examples │ │ │ │ │ ├── IncompleteHostnameRegExp.js │ │ │ │ │ ├── IncompleteUrlSchemeCheck.js │ │ │ │ │ ├── IncompleteUrlSchemeCheckGood.js │ │ │ │ │ ├── IncompleteUrlSubstringSanitization_BAD1.js │ │ │ │ │ ├── IncompleteUrlSubstringSanitization_BAD2.js │ │ │ │ │ ├── IncompleteUrlSubstringSanitization_GOOD.js │ │ │ │ │ ├── IncorrectSuffixCheck.js │ │ │ │ │ ├── IncorrectSuffixCheckGood.js │ │ │ │ │ ├── MissingRegExpAnchor_BAD.js │ │ │ │ │ ├── MissingRegExpAnchor_GOOD.js │ │ │ │ │ └── UselessRegExpCharacterEscape_bad_1.js │ │ │ ├── CWE-022 │ │ │ │ ├── TaintedPath.qhelp │ │ │ │ ├── TaintedPath.ql │ │ │ │ ├── ZipSlip.qhelp │ │ │ │ ├── ZipSlip.ql │ │ │ │ ├── ZipSlipBad.js │ │ │ │ ├── ZipSlipGood.js │ │ │ │ └── examples │ │ │ │ │ └── TaintedPath.js │ │ │ ├── CWE-073 │ │ │ │ ├── TemplateObjectInjection.qhelp │ │ │ │ ├── TemplateObjectInjection.ql │ │ │ │ └── examples │ │ │ │ │ ├── TemplateObjectInjection.js │ │ │ │ │ └── TemplateObjectInjection_fixed.js │ │ │ ├── CWE-078 │ │ │ │ ├── CommandInjection.qhelp │ │ │ │ ├── CommandInjection.ql │ │ │ │ ├── IndirectCommandInjection.qhelp │ │ │ │ ├── IndirectCommandInjection.ql │ │ │ │ ├── ShellCommandInjectionFromEnvironment.qhelp │ │ │ │ ├── ShellCommandInjectionFromEnvironment.ql │ │ │ │ ├── UnsafeShellCommandConstruction.qhelp │ │ │ │ ├── UnsafeShellCommandConstruction.ql │ │ │ │ ├── UselessUseOfCat.qhelp │ │ │ │ ├── UselessUseOfCat.ql │ │ │ │ └── examples │ │ │ │ │ ├── command-injection.js │ │ │ │ │ ├── indirect-command-injection.js │ │ │ │ │ ├── indirect-command-injection_fixed.js │ │ │ │ │ ├── shell-command-injection-from-environment.js │ │ │ │ │ ├── shell-command-injection-from-environment_fixed.js │ │ │ │ │ ├── unsafe-shell-command-construction.js │ │ │ │ │ ├── unsafe-shell-command-construction_fixed.js │ │ │ │ │ ├── useless-cat-fixed.js │ │ │ │ │ └── useless-cat.js │ │ │ ├── CWE-079 │ │ │ │ ├── ExceptionXss.qhelp │ │ │ │ ├── ExceptionXss.ql │ │ │ │ ├── ReflectedXss.qhelp │ │ │ │ ├── ReflectedXss.ql │ │ │ │ ├── StoredXss.qhelp │ │ │ │ ├── StoredXss.ql │ │ │ │ ├── UnsafeJQueryPlugin.qhelp │ │ │ │ ├── UnsafeJQueryPlugin.ql │ │ │ │ ├── Xss.qhelp │ │ │ │ ├── Xss.ql │ │ │ │ ├── XssThroughDom.qhelp │ │ │ │ ├── XssThroughDom.ql │ │ │ │ └── examples │ │ │ │ │ ├── ExceptionXss.js │ │ │ │ │ ├── ExceptionXssAjv.js │ │ │ │ │ ├── ReflectedXss.js │ │ │ │ │ ├── ReflectedXssGood.js │ │ │ │ │ ├── StoredXss.js │ │ │ │ │ ├── StoredXssGood.js │ │ │ │ │ ├── UnsafeJQueryPlugin.js │ │ │ │ │ ├── UnsafeJQueryPlugin_safe.js │ │ │ │ │ ├── Xss.js │ │ │ │ │ ├── XssThroughDom.js │ │ │ │ │ └── XssThroughDomFixed.js │ │ │ ├── CWE-089 │ │ │ │ ├── SqlInjection.qhelp │ │ │ │ ├── SqlInjection.ql │ │ │ │ └── examples │ │ │ │ │ └── SqlInjection.js │ │ │ ├── CWE-094 │ │ │ │ ├── CodeInjection.qhelp │ │ │ │ ├── CodeInjection.ql │ │ │ │ ├── ImproperCodeSanitization.qhelp │ │ │ │ ├── ImproperCodeSanitization.ql │ │ │ │ ├── UnsafeDynamicMethodAccess.qhelp │ │ │ │ ├── UnsafeDynamicMethodAccess.ql │ │ │ │ └── examples │ │ │ │ │ ├── CodeInjection.js │ │ │ │ │ ├── ImproperCodeSanitization.js │ │ │ │ │ ├── ImproperCodeSanitizationFixed.js │ │ │ │ │ ├── ServerSideTemplateInjection.js │ │ │ │ │ ├── ServerSideTemplateInjectionSafe.js │ │ │ │ │ ├── UnsafeDynamicMethodAccess.js │ │ │ │ │ └── UnsafeDynamicMethodAccessGood.js │ │ │ ├── CWE-116 │ │ │ │ ├── DoubleEscaping.qhelp │ │ │ │ ├── DoubleEscaping.ql │ │ │ │ ├── IncompleteHtmlAttributeSanitization.qhelp │ │ │ │ ├── IncompleteHtmlAttributeSanitization.ql │ │ │ │ ├── IncompleteMultiCharacterSanitization.qhelp │ │ │ │ ├── IncompleteMultiCharacterSanitization.ql │ │ │ │ ├── IncompleteSanitization.qhelp │ │ │ │ ├── IncompleteSanitization.ql │ │ │ │ ├── UnsafeHtmlExpansion.qhelp │ │ │ │ ├── UnsafeHtmlExpansion.ql │ │ │ │ └── examples │ │ │ │ │ ├── DoubleEscaping.js │ │ │ │ │ ├── DoubleEscapingGood.js │ │ │ │ │ ├── IncompleteHtmlAttributeSanitization.js │ │ │ │ │ ├── IncompleteHtmlAttributeSanitizationGood.js │ │ │ │ │ ├── IncompleteSanitization.js │ │ │ │ │ ├── IncompleteSanitizationGood.js │ │ │ │ │ ├── UnsafeHtmlExpansion-original.html │ │ │ │ │ ├── UnsafeHtmlExpansion-transformed.html │ │ │ │ │ └── UnsafeHtmlExpansion.js │ │ │ ├── CWE-117 │ │ │ │ ├── LogInjection.qhelp │ │ │ │ ├── LogInjection.ql │ │ │ │ └── examples │ │ │ │ │ ├── logInjectionBad.js │ │ │ │ │ └── logInjectionGood.js │ │ │ ├── CWE-134 │ │ │ │ ├── TaintedFormatString.qhelp │ │ │ │ ├── TaintedFormatString.ql │ │ │ │ └── examples │ │ │ │ │ ├── TaintedFormatStringBad.js │ │ │ │ │ └── TaintedFormatStringGood.js │ │ │ ├── CWE-200 │ │ │ │ ├── FileAccessToHttp.qhelp │ │ │ │ ├── FileAccessToHttp.ql │ │ │ │ ├── PrivateFileExposure.qhelp │ │ │ │ ├── PrivateFileExposure.ql │ │ │ │ └── examples │ │ │ │ │ ├── FileAccessToHttp.js │ │ │ │ │ ├── PrivateFileExposure.js │ │ │ │ │ └── PrivateFileExposureFixed.js │ │ │ ├── CWE-201 │ │ │ │ ├── PostMessageStar.qhelp │ │ │ │ ├── PostMessageStar.ql │ │ │ │ └── examples │ │ │ │ │ ├── PostMessageStar.js │ │ │ │ │ └── PostMessageStarGood.js │ │ │ ├── CWE-209 │ │ │ │ ├── StackTraceExposure.qhelp │ │ │ │ ├── StackTraceExposure.ql │ │ │ │ └── examples │ │ │ │ │ ├── StackTraceExposureBad.js │ │ │ │ │ └── StackTraceExposureGood.js │ │ │ ├── CWE-295 │ │ │ │ ├── DisablingCertificateValidation.qhelp │ │ │ │ ├── DisablingCertificateValidation.ql │ │ │ │ └── examples │ │ │ │ │ └── DisablingCertificateValidation.js │ │ │ ├── CWE-312 │ │ │ │ ├── BuildArtifactLeak.qhelp │ │ │ │ ├── BuildArtifactLeak.ql │ │ │ │ ├── CleartextLogging.qhelp │ │ │ │ ├── CleartextLogging.ql │ │ │ │ ├── CleartextStorage.qhelp │ │ │ │ ├── CleartextStorage.ql │ │ │ │ └── examples │ │ │ │ │ ├── CleartextStorage.js │ │ │ │ │ ├── CleartextStorageGood.js │ │ │ │ │ ├── build-leak-fixed.js │ │ │ │ │ └── build-leak.js │ │ │ ├── CWE-313 │ │ │ │ ├── PasswordInConfigurationFile.qhelp │ │ │ │ └── PasswordInConfigurationFile.ql │ │ │ ├── CWE-327 │ │ │ │ ├── BadRandomness.qhelp │ │ │ │ ├── BadRandomness.ql │ │ │ │ ├── BrokenCryptoAlgorithm.qhelp │ │ │ │ ├── BrokenCryptoAlgorithm.ql │ │ │ │ └── examples │ │ │ │ │ ├── BrokenCryptoAlgorithm.js │ │ │ │ │ ├── bad-random-fixed.js │ │ │ │ │ ├── bad-random-fixed2.js │ │ │ │ │ └── bad-random.js │ │ │ ├── CWE-338 │ │ │ │ ├── InsecureRandomness.qhelp │ │ │ │ ├── InsecureRandomness.ql │ │ │ │ └── examples │ │ │ │ │ ├── InsecureRandomness.js │ │ │ │ │ └── InsecureRandomness_fixed.js │ │ │ ├── CWE-346 │ │ │ │ ├── CorsMisconfigurationForCredentials.qhelp │ │ │ │ ├── CorsMisconfigurationForCredentials.ql │ │ │ │ └── examples │ │ │ │ │ ├── CorsMisconfigurationForCredentials.js │ │ │ │ │ └── CorsMisconfigurationForCredentials_fixed.js │ │ │ ├── CWE-352 │ │ │ │ ├── MissingCsrfMiddleware.qhelp │ │ │ │ ├── MissingCsrfMiddleware.ql │ │ │ │ └── examples │ │ │ │ │ ├── MissingCsrfMiddlewareBad.js │ │ │ │ │ └── MissingCsrfMiddlewareGood.js │ │ │ ├── CWE-400 │ │ │ │ ├── DeepObjectResourceExhaustion.qhelp │ │ │ │ ├── DeepObjectResourceExhaustion.ql │ │ │ │ ├── RemotePropertyInjection.expected │ │ │ │ ├── RemotePropertyInjection.qhelp │ │ │ │ ├── RemotePropertyInjection.ql │ │ │ │ └── examples │ │ │ │ │ ├── DeepObjectResourceExhaustion.js │ │ │ │ │ ├── DeepObjectResourceExhaustion_fixed.js │ │ │ │ │ ├── RemotePropertyInjection.js │ │ │ │ │ └── RemotePropertyInjection_fixed.js │ │ │ ├── CWE-451 │ │ │ │ ├── MissingXFrameOptions.qhelp │ │ │ │ ├── MissingXFrameOptions.ql │ │ │ │ └── examples │ │ │ │ │ ├── X-Frame-Options.js │ │ │ │ │ └── missing-X-Frame-Options.js │ │ │ ├── CWE-502 │ │ │ │ ├── UnsafeDeserialization.qhelp │ │ │ │ ├── UnsafeDeserialization.ql │ │ │ │ └── examples │ │ │ │ │ ├── UnsafeDeserializationBad.js │ │ │ │ │ └── UnsafeDeserializationGood.js │ │ │ ├── CWE-506 │ │ │ │ ├── HardcodedDataInterpretedAsCode.qhelp │ │ │ │ ├── HardcodedDataInterpretedAsCode.ql │ │ │ │ └── examples │ │ │ │ │ └── HardcodedDataInterpretedAsCode.js │ │ │ ├── CWE-601 │ │ │ │ ├── ClientSideUrlRedirect.qhelp │ │ │ │ ├── ClientSideUrlRedirect.ql │ │ │ │ ├── ServerSideUrlRedirect.qhelp │ │ │ │ ├── ServerSideUrlRedirect.ql │ │ │ │ └── examples │ │ │ │ │ ├── ClientSideUrlRedirect.js │ │ │ │ │ ├── ServerSideUrlRedirect.js │ │ │ │ │ └── ServerSideUrlRedirectGood.js │ │ │ ├── CWE-611 │ │ │ │ ├── Xxe.qhelp │ │ │ │ ├── Xxe.ql │ │ │ │ └── examples │ │ │ │ │ ├── Xxe.js │ │ │ │ │ └── XxeGood.js │ │ │ ├── CWE-640 │ │ │ │ ├── HostHeaderPoisoningInEmailGeneration.qhelp │ │ │ │ ├── HostHeaderPoisoningInEmailGeneration.ql │ │ │ │ └── examples │ │ │ │ │ ├── HostHeaderPoisoningInEmailGeneration.js │ │ │ │ │ └── HostHeaderPoisoningInEmailGenerationGood.js │ │ │ ├── CWE-643 │ │ │ │ ├── XpathInjection.qhelp │ │ │ │ ├── XpathInjection.ql │ │ │ │ └── examples │ │ │ │ │ ├── XpathInjectionBad.js │ │ │ │ │ └── XpathInjectionGood.js │ │ │ ├── CWE-730 │ │ │ │ ├── RegExpInjection.qhelp │ │ │ │ ├── RegExpInjection.ql │ │ │ │ ├── ServerCrash.qhelp │ │ │ │ ├── ServerCrash.ql │ │ │ │ └── examples │ │ │ │ │ ├── RegExpInjection.js │ │ │ │ │ ├── RegExpInjectionGood.js │ │ │ │ │ ├── server-crash.BAD.js │ │ │ │ │ ├── server-crash.GOOD-A.js │ │ │ │ │ └── server-crash.GOOD-B.js │ │ │ ├── CWE-754 │ │ │ │ ├── UnvalidatedDynamicMethodCall.qhelp │ │ │ │ ├── UnvalidatedDynamicMethodCall.ql │ │ │ │ └── examples │ │ │ │ │ ├── UnvalidatedDynamicMethodCall.js │ │ │ │ │ ├── UnvalidatedDynamicMethodCallGood.js │ │ │ │ │ └── UnvalidatedDynamicMethodCallGood2.js │ │ │ ├── CWE-770 │ │ │ │ ├── MissingRateLimiting.qhelp │ │ │ │ ├── MissingRateLimiting.ql │ │ │ │ └── examples │ │ │ │ │ ├── MissingRateLimiting.js │ │ │ │ │ └── MissingRateLimitingGood.js │ │ │ ├── CWE-776 │ │ │ │ ├── XmlBomb.qhelp │ │ │ │ ├── XmlBomb.ql │ │ │ │ └── examples │ │ │ │ │ ├── XmlBomb.js │ │ │ │ │ └── XmlBombGood.js │ │ │ ├── CWE-798 │ │ │ │ ├── HardcodedCredentials.qhelp │ │ │ │ ├── HardcodedCredentials.ql │ │ │ │ └── examples │ │ │ │ │ └── HardcodedCredentials.js │ │ │ ├── CWE-807 │ │ │ │ ├── ConditionalBypass.qhelp │ │ │ │ ├── ConditionalBypass.ql │ │ │ │ ├── DifferentKindsComparisonBypass.qhelp │ │ │ │ ├── DifferentKindsComparisonBypass.ql │ │ │ │ ├── example.inc.qhelp │ │ │ │ ├── examples │ │ │ │ │ ├── bypass.js │ │ │ │ │ └── bypass_fixed.js │ │ │ │ └── recommendation.inc.qhelp │ │ │ ├── CWE-829 │ │ │ │ ├── InsecureDownload.qhelp │ │ │ │ ├── InsecureDownload.ql │ │ │ │ └── examples │ │ │ │ │ ├── insecure-download.js │ │ │ │ │ └── secure-download.js │ │ │ ├── CWE-834 │ │ │ │ ├── LoopBoundInjection.qhelp │ │ │ │ ├── LoopBoundInjection.ql │ │ │ │ └── examples │ │ │ │ │ ├── LoopBoundInjection.js │ │ │ │ │ └── LoopBoundInjection_fixed.js │ │ │ ├── CWE-843 │ │ │ │ ├── TypeConfusionThroughParameterTampering.qhelp │ │ │ │ ├── TypeConfusionThroughParameterTampering.ql │ │ │ │ └── examples │ │ │ │ │ ├── TypeConfusionThroughParameterTampering.js │ │ │ │ │ └── TypeConfusionThroughParameterTampering_fixed.js │ │ │ ├── CWE-912 │ │ │ │ ├── HttpToFileAccess.qhelp │ │ │ │ ├── HttpToFileAccess.ql │ │ │ │ └── examples │ │ │ │ │ └── HttpToFileAccess.js │ │ │ ├── CWE-915 │ │ │ │ ├── PrototypePollutingAssignment.qhelp │ │ │ │ ├── PrototypePollutingAssignment.ql │ │ │ │ ├── PrototypePollutingFunction.qhelp │ │ │ │ ├── PrototypePollutingFunction.ql │ │ │ │ ├── PrototypePollutingMergeCall.qhelp │ │ │ │ ├── PrototypePollutingMergeCall.ql │ │ │ │ └── examples │ │ │ │ │ ├── PrototypePollutingAssignment.js │ │ │ │ │ ├── PrototypePollutingAssignmentFixed.js │ │ │ │ │ ├── PrototypePollutingFunction.js │ │ │ │ │ ├── PrototypePollutingFunction_fixed.js │ │ │ │ │ ├── PrototypePollutingFunction_fixed2.js │ │ │ │ │ ├── PrototypePollutingMergeCall1.js │ │ │ │ │ ├── PrototypePollutingMergeCall2.js │ │ │ │ │ └── PrototypePollutingMergeCall_fixed.json │ │ │ ├── CWE-916 │ │ │ │ ├── InsufficientPasswordHash.qhelp │ │ │ │ ├── InsufficientPasswordHash.ql │ │ │ │ └── examples │ │ │ │ │ ├── InsufficientPasswordHash.js │ │ │ │ │ └── InsufficientPasswordHash_fixed.js │ │ │ └── CWE-918 │ │ │ │ ├── RequestForgery.qhelp │ │ │ │ ├── RequestForgery.ql │ │ │ │ └── examples │ │ │ │ ├── RequestForgeryBad.js │ │ │ │ └── RequestForgeryGood.js │ │ ├── StandardLibrary │ │ │ └── examples │ │ │ │ ├── CallbackUsesThis.js │ │ │ │ ├── CallbackUsesThisGood.js │ │ │ │ ├── CallbackUsesThisGood2.js │ │ │ │ ├── ParseIntRadix.js │ │ │ │ └── ParseIntRadixGood.js │ │ ├── Statements │ │ │ ├── DanglingElse.qhelp │ │ │ ├── DanglingElse.ql │ │ │ ├── EphemeralLoop.qhelp │ │ │ ├── EphemeralLoop.ql │ │ │ ├── IgnoreArrayResult.qhelp │ │ │ ├── IgnoreArrayResult.ql │ │ │ ├── ImplicitReturn.qhelp │ │ │ ├── ImplicitReturn.ql │ │ │ ├── InconsistentLoopOrientation.qhelp │ │ │ ├── InconsistentLoopOrientation.ql │ │ │ ├── InconsistentReturn.qhelp │ │ │ ├── InconsistentReturn.ql │ │ │ ├── LabelInCase.qhelp │ │ │ ├── LabelInCase.ql │ │ │ ├── LoopIterationSkippedDueToShifting.qhelp │ │ │ ├── LoopIterationSkippedDueToShifting.ql │ │ │ ├── MisleadingIndentationAfterControlStmt.qhelp │ │ │ ├── MisleadingIndentationAfterControlStmt.ql │ │ │ ├── NestedLoopsSameVariable.qhelp │ │ │ ├── NestedLoopsSameVariable.ql │ │ │ ├── ReturnAssignsLocal.qhelp │ │ │ ├── ReturnAssignsLocal.ql │ │ │ ├── ReturnOutsideFunction.qhelp │ │ │ ├── ReturnOutsideFunction.ql │ │ │ ├── SuspiciousUnusedLoopIterationVariable.qhelp │ │ │ ├── SuspiciousUnusedLoopIterationVariable.ql │ │ │ ├── UnreachableStatement.qhelp │ │ │ ├── UnreachableStatement.ql │ │ │ ├── UseOfReturnlessFunction.qhelp │ │ │ ├── UseOfReturnlessFunction.ql │ │ │ ├── UselessComparisonTest.qhelp │ │ │ ├── UselessComparisonTest.ql │ │ │ ├── UselessConditional.qhelp │ │ │ ├── UselessConditional.ql │ │ │ ├── UselessConditional.qll │ │ │ └── examples │ │ │ │ ├── DanglingElse.js │ │ │ │ ├── DanglingElseGood.js │ │ │ │ ├── DanglingElseGood2.js │ │ │ │ ├── EphemeralLoop.js │ │ │ │ ├── EphemeralLoopGood.js │ │ │ │ ├── IgnoreArrayResult.js │ │ │ │ ├── IgnoreArrayResultFixed.js │ │ │ │ ├── ImplicitReturn.js │ │ │ │ ├── ImplicitReturnGood.js │ │ │ │ ├── InconsistentLoopOrientation.js │ │ │ │ ├── InconsistentLoopOrientationGood.js │ │ │ │ ├── InconsistentReturn.js │ │ │ │ ├── InconsistentReturnGood.js │ │ │ │ ├── LabelInCase.js │ │ │ │ ├── LoopIterationSkippedDueToShifting.js │ │ │ │ ├── LoopIterationSkippedDueToShiftingGood.js │ │ │ │ ├── LoopIterationSkippedDueToShiftingGoodFilter.js │ │ │ │ ├── MisleadingIndentationAfterControlStmt.js │ │ │ │ ├── MisleadingIndentationAfterControlStmtGood.js │ │ │ │ ├── MisleadingIndentationAfterControlStmtGood2.js │ │ │ │ ├── NestedLoopsSameVariable.js │ │ │ │ ├── NestedLoopsSameVariableGood.js │ │ │ │ ├── ReturnAssignsLocal.js │ │ │ │ ├── ReturnAssignsLocalGood.js │ │ │ │ ├── ReturnOutsideFunction.htm │ │ │ │ ├── ReturnOutsideFunctionGood.htm │ │ │ │ ├── SuspiciousUnusedLoopIterationVariable.js │ │ │ │ ├── UnreachableStatement.js │ │ │ │ ├── UnreachableStatementGood.js │ │ │ │ ├── UseOfReturnlessFunction.js │ │ │ │ ├── UselessComparisonTest.js │ │ │ │ ├── UselessComparisonTestGood.js │ │ │ │ ├── UselessConditional.js │ │ │ │ └── UselessConditionalGood.js │ │ ├── Vue │ │ │ ├── ArrowMethodOnVueInstance.qhelp │ │ │ ├── ArrowMethodOnVueInstance.ql │ │ │ └── examples │ │ │ │ └── ArrowMethodOnVueInstance.js │ │ ├── codeql-suites │ │ │ ├── javascript-code-scanning.qls │ │ │ ├── javascript-lgtm-full.qls │ │ │ ├── javascript-lgtm.qls │ │ │ ├── javascript-security-and-quality.qls │ │ │ └── javascript-security-extended.qls │ │ ├── default.qll │ │ ├── definitions.ql │ │ ├── definitions.qll │ │ ├── experimental │ │ │ ├── README.md │ │ │ ├── Security │ │ │ │ ├── CWE-020 │ │ │ │ │ ├── PostMessageNoOriginCheck.qhelp │ │ │ │ │ ├── PostMessageNoOriginCheck.ql │ │ │ │ │ └── examples │ │ │ │ │ │ ├── postMessageInsufficientCheck.js │ │ │ │ │ │ ├── postMessageNoOriginCheck.js │ │ │ │ │ │ └── postMessageWithOriginCheck.js │ │ │ │ ├── CWE-090 │ │ │ │ │ ├── LdapInjection.qhelp │ │ │ │ │ ├── LdapInjection.ql │ │ │ │ │ ├── LdapInjection.qll │ │ │ │ │ ├── LdapInjectionCustomizations.qll │ │ │ │ │ ├── Ldapjs.qll │ │ │ │ │ └── examples │ │ │ │ │ │ ├── example_bad1.js │ │ │ │ │ │ ├── example_bad2.js │ │ │ │ │ │ ├── example_good1.js │ │ │ │ │ │ └── example_good2.js │ │ │ │ ├── CWE-094 │ │ │ │ │ ├── ExpressionInjection.qhelp │ │ │ │ │ ├── ExpressionInjection.ql │ │ │ │ │ ├── UntrustedCheckout.qhelp │ │ │ │ │ ├── UntrustedCheckout.ql │ │ │ │ │ └── examples │ │ │ │ │ │ ├── comment_issue_bad.yml │ │ │ │ │ │ ├── comment_issue_good.yml │ │ │ │ │ │ ├── comment_pr.yml │ │ │ │ │ │ ├── pull_request_target_bad.yml │ │ │ │ │ │ └── receive_pr.yml │ │ │ │ ├── CWE-347 │ │ │ │ │ ├── JWTMissingSecretOrPublicKeyVerification.help │ │ │ │ │ ├── JWTMissingSecretOrPublicKeyVerification.ql │ │ │ │ │ └── examples │ │ │ │ │ │ └── JWTMissingSecretOrPublicKeyVerification.js │ │ │ │ ├── CWE-614 │ │ │ │ │ ├── InsecureCookie.qhelp │ │ │ │ │ ├── InsecureCookie.ql │ │ │ │ │ └── InsecureCookie.qll │ │ │ │ └── CWE-770 │ │ │ │ │ ├── ResourceExhaustion.qhelp │ │ │ │ │ ├── ResourceExhaustion.ql │ │ │ │ │ └── examples │ │ │ │ │ ├── ResourceExhaustion_timeout.js │ │ │ │ │ └── ResourceExhaustion_timeout_fixed.js │ │ │ ├── Summaries │ │ │ │ ├── Configurations.qll │ │ │ │ ├── ExtractFlowStepSummaries.ql │ │ │ │ ├── ExtractSinkSummaries.ql │ │ │ │ ├── ExtractSourceSummaries.ql │ │ │ │ ├── ImportFromCsv.qll │ │ │ │ ├── ImportFromExternalPredicates.qll │ │ │ │ ├── PortalEntrySink.qll │ │ │ │ ├── PortalExitSource.qll │ │ │ │ ├── Shared.qll │ │ │ │ ├── SinkFromAnnotation.qll │ │ │ │ └── SourceFromAnnotation.qll │ │ │ ├── poi │ │ │ │ └── PoI.qll │ │ │ └── semmle │ │ │ │ └── javascript │ │ │ │ ├── Actions.qll │ │ │ │ └── security │ │ │ │ └── dataflow │ │ │ │ ├── ResourceExhaustion.qll │ │ │ │ └── ResourceExhaustionCustomizations.qll │ │ ├── external │ │ │ ├── DefectFilter.qll │ │ │ ├── DuplicateFunction.qhelp │ │ │ ├── DuplicateFunction.ql │ │ │ ├── DuplicateToplevel.qhelp │ │ │ ├── DuplicateToplevel.ql │ │ │ ├── ExternalArtifact.qll │ │ │ ├── MetricFilter.qll │ │ │ ├── SimilarFunction.qhelp │ │ │ ├── SimilarFunction.ql │ │ │ ├── SimilarToplevel.qhelp │ │ │ └── SimilarToplevel.ql │ │ ├── filters │ │ │ ├── ClassifyFiles.ql │ │ │ └── ClassifyFiles.qll │ │ ├── javascript.qll │ │ ├── localDefinitions.ql │ │ ├── localReferences.ql │ │ ├── meta │ │ │ ├── ApiGraphs │ │ │ │ ├── ApiGraphEdges.ql │ │ │ │ ├── ApiGraphNodes.ql │ │ │ │ ├── ApiGraphPointsToEdges.ql │ │ │ │ ├── ApiGraphRhsNodes.ql │ │ │ │ └── ApiGraphUseNodes.ql │ │ │ ├── Consistency.ql │ │ │ ├── MetaMetrics.qll │ │ │ ├── SSA │ │ │ │ ├── DeadDef.ql │ │ │ │ ├── Dominance.ql │ │ │ │ ├── MultipleDefs.ql │ │ │ │ ├── MultipleRefinementInputs.ql │ │ │ │ ├── NoDefs.ql │ │ │ │ ├── NoPhiInputs.ql │ │ │ │ ├── NoRefinementInputs.ql │ │ │ │ └── SinglePhiInput.ql │ │ │ ├── alerts │ │ │ │ ├── CallGraph.ql │ │ │ │ ├── TaintSinks.ql │ │ │ │ ├── TaintSources.ql │ │ │ │ └── TaintedNodes.ql │ │ │ ├── analysis-quality │ │ │ │ ├── CallGraphQuality.qll │ │ │ │ ├── CalledFunctionCandidates.ql │ │ │ │ ├── CalledFunctionRatio.ql │ │ │ │ ├── CalledFunctions.ql │ │ │ │ ├── CandidateTracking.qll │ │ │ │ ├── DomValueRefs.ql │ │ │ │ ├── NumModules.ql │ │ │ │ ├── ResolvableCallCandidates.ql │ │ │ │ ├── ResolvableCallRatio.ql │ │ │ │ ├── ResolvableCalls.ql │ │ │ │ ├── ResolvableImports.ql │ │ │ │ ├── RouteHandlers.ql │ │ │ │ ├── SanitizersReachableFromSource.ql │ │ │ │ ├── SinksReachableFromSanitizer.ql │ │ │ │ ├── TaintSinks.ql │ │ │ │ ├── TaintSources.ql │ │ │ │ ├── TaintSteps.ql │ │ │ │ ├── TaintedNodes.ql │ │ │ │ ├── UncalledFunctions.ql │ │ │ │ ├── UnpromotedRouteHandlerCandidate.ql │ │ │ │ ├── UnpromotedRouteSetupCandidate.ql │ │ │ │ ├── UnresolvableCalls.ql │ │ │ │ └── UnresolvableImports.ql │ │ │ ├── extraction-metrics │ │ │ │ ├── FileData.ql │ │ │ │ ├── MissingMetrics.ql │ │ │ │ └── PhaseTimings.ql │ │ │ ├── internal │ │ │ │ └── TaintMetrics.qll │ │ │ └── types │ │ │ │ ├── TypedExprs.ql │ │ │ │ └── TypesWithQualifiedName.ql │ │ ├── printAst.ql │ │ ├── qlpack.yml │ │ ├── queries.xml │ │ ├── semmle │ │ │ ├── files │ │ │ │ └── FileSystem.qll │ │ │ └── javascript │ │ │ │ ├── AMD.qll │ │ │ │ ├── AST.qll │ │ │ │ ├── Aliases.qll │ │ │ │ ├── ApiGraphs.qll │ │ │ │ ├── Arrays.qll │ │ │ │ ├── Base64.qll │ │ │ │ ├── BasicBlocks.qll │ │ │ │ ├── CFG.qll │ │ │ │ ├── CanonicalNames.qll │ │ │ │ ├── CharacterEscapes.qll │ │ │ │ ├── Classes.qll │ │ │ │ ├── Closure.qll │ │ │ │ ├── Collections.qll │ │ │ │ ├── Comments.qll │ │ │ │ ├── Concepts.qll │ │ │ │ ├── Constants.qll │ │ │ │ ├── DOM.qll │ │ │ │ ├── DefUse.qll │ │ │ │ ├── DefensiveProgramming.qll │ │ │ │ ├── DynamicPropertyAccess.qll │ │ │ │ ├── E4X.qll │ │ │ │ ├── ES2015Modules.qll │ │ │ │ ├── EmailClients.qll │ │ │ │ ├── Errors.qll │ │ │ │ ├── Expr.qll │ │ │ │ ├── Extend.qll │ │ │ │ ├── Externs.qll │ │ │ │ ├── Files.qll │ │ │ │ ├── Functions.qll │ │ │ │ ├── GeneratedCode.qll │ │ │ │ ├── Generators.qll │ │ │ │ ├── GlobalAccessPaths.qll │ │ │ │ ├── HTML.qll │ │ │ │ ├── HtmlSanitizers.qll │ │ │ │ ├── InclusionTests.qll │ │ │ │ ├── JSDoc.qll │ │ │ │ ├── JSON.qll │ │ │ │ ├── JSX.qll │ │ │ │ ├── JsonParsers.qll │ │ │ │ ├── JsonSchema.qll │ │ │ │ ├── JsonStringifiers.qll │ │ │ │ ├── Lines.qll │ │ │ │ ├── Locations.qll │ │ │ │ ├── MembershipCandidates.qll │ │ │ │ ├── Modules.qll │ │ │ │ ├── NPM.qll │ │ │ │ ├── NodeJS.qll │ │ │ │ ├── NodeModuleResolutionImpl.qll │ │ │ │ ├── PackageExports.qll │ │ │ │ ├── Paths.qll │ │ │ │ ├── PrintAst.qll │ │ │ │ ├── Promises.qll │ │ │ │ ├── RangeAnalysis.qll │ │ │ │ ├── Regexp.qll │ │ │ │ ├── RestrictedLocations.qll │ │ │ │ ├── SSA.qll │ │ │ │ ├── SourceMaps.qll │ │ │ │ ├── StandardLibrary.qll │ │ │ │ ├── Stmt.qll │ │ │ │ ├── StringConcatenation.qll │ │ │ │ ├── StringOps.qll │ │ │ │ ├── Templates.qll │ │ │ │ ├── Tokens.qll │ │ │ │ ├── TypeAnnotations.qll │ │ │ │ ├── TypeScript.qll │ │ │ │ ├── Util.qll │ │ │ │ ├── Variables.qll │ │ │ │ ├── XML.qll │ │ │ │ ├── YAML.qll │ │ │ │ ├── dataflow │ │ │ │ ├── AbstractProperties.qll │ │ │ │ ├── AbstractValues.qll │ │ │ │ ├── BackwardExploration.qll │ │ │ │ ├── Configuration.qll │ │ │ │ ├── CustomAbstractValueDefinitions.qll │ │ │ │ ├── DataFlow.qll │ │ │ │ ├── ForwardExploration.qll │ │ │ │ ├── InferredTypes.qll │ │ │ │ ├── LocalObjects.qll │ │ │ │ ├── Nodes.qll │ │ │ │ ├── Portals.qll │ │ │ │ ├── Refinements.qll │ │ │ │ ├── Sources.qll │ │ │ │ ├── TaintTracking.qll │ │ │ │ ├── TrackedNodes.qll │ │ │ │ ├── TypeInference.qll │ │ │ │ ├── TypeTracking.qll │ │ │ │ └── internal │ │ │ │ │ ├── AbstractPropertiesImpl.qll │ │ │ │ │ ├── AbstractValuesImpl.qll │ │ │ │ │ ├── AccessPaths.qll │ │ │ │ │ ├── AnalyzedParameters.qll │ │ │ │ │ ├── BasicExprTypeInference.qll │ │ │ │ │ ├── CallGraphs.qll │ │ │ │ │ ├── DataFlowNode.qll │ │ │ │ │ ├── FlowSteps.qll │ │ │ │ │ ├── InterModuleTypeInference.qll │ │ │ │ │ ├── InterProceduralTypeInference.qll │ │ │ │ │ ├── PreCallGraphStep.qll │ │ │ │ │ ├── PropertyTypeInference.qll │ │ │ │ │ ├── StepSummary.qll │ │ │ │ │ ├── Unit.qll │ │ │ │ │ └── VariableTypeInference.qll │ │ │ │ ├── dependencies │ │ │ │ ├── Dependencies.qll │ │ │ │ ├── DependencyCustomizations.qll │ │ │ │ ├── FrameworkLibraries.qll │ │ │ │ └── SemVer.qll │ │ │ │ ├── explore │ │ │ │ ├── BackwardDataFlow.qll │ │ │ │ ├── CallGraph.qll │ │ │ │ └── ForwardDataFlow.qll │ │ │ │ ├── frameworks │ │ │ │ ├── AWS.qll │ │ │ │ ├── Angular2.qll │ │ │ │ ├── AngularJS.qll │ │ │ │ ├── AngularJS │ │ │ │ │ ├── AngularJSCore.qll │ │ │ │ │ ├── AngularJSExpressions.qll │ │ │ │ │ ├── DependencyInjections.qll │ │ │ │ │ └── ServiceDefinitions.qll │ │ │ │ ├── AsyncPackage.qll │ │ │ │ ├── Azure.qll │ │ │ │ ├── Babel.qll │ │ │ │ ├── Bundling.qll │ │ │ │ ├── Cheerio.qll │ │ │ │ ├── Classnames.qll │ │ │ │ ├── ClientRequests.qll │ │ │ │ ├── ClosureLibrary.qll │ │ │ │ ├── ComposedFunctions.qll │ │ │ │ ├── Connect.qll │ │ │ │ ├── ConnectExpressShared.qll │ │ │ │ ├── CookieLibraries.qll │ │ │ │ ├── Credentials.qll │ │ │ │ ├── CryptoLibraries.qll │ │ │ │ ├── D3.qll │ │ │ │ ├── DateFunctions.qll │ │ │ │ ├── DigitalOcean.qll │ │ │ │ ├── Electron.qll │ │ │ │ ├── Emscripten.qll │ │ │ │ ├── EventEmitter.qll │ │ │ │ ├── Express.qll │ │ │ │ ├── ExpressModules.qll │ │ │ │ ├── Fastify.qll │ │ │ │ ├── Files.qll │ │ │ │ ├── Firebase.qll │ │ │ │ ├── FormParsers.qll │ │ │ │ ├── GWT.qll │ │ │ │ ├── HTTP.qll │ │ │ │ ├── Handlebars.qll │ │ │ │ ├── Hapi.qll │ │ │ │ ├── HttpFrameworks.qll │ │ │ │ ├── HttpProxy.qll │ │ │ │ ├── Immutable.qll │ │ │ │ ├── JWT.qll │ │ │ │ ├── Koa.qll │ │ │ │ ├── LazyCache.qll │ │ │ │ ├── LodashUnderscore.qll │ │ │ │ ├── Logging.qll │ │ │ │ ├── Markdown.qll │ │ │ │ ├── Micro.qll │ │ │ │ ├── Next.qll │ │ │ │ ├── NoSQL.qll │ │ │ │ ├── NodeJSLib.qll │ │ │ │ ├── PkgCloud.qll │ │ │ │ ├── PropertyProjection.qll │ │ │ │ ├── Puppeteer.qll │ │ │ │ ├── React.qll │ │ │ │ ├── ReactNative.qll │ │ │ │ ├── Request.qll │ │ │ │ ├── Restify.qll │ │ │ │ ├── RxJS.qll │ │ │ │ ├── SQL.qll │ │ │ │ ├── ServerLess.qll │ │ │ │ ├── ShellJS.qll │ │ │ │ ├── SocketIO.qll │ │ │ │ ├── StringFormatters.qll │ │ │ │ ├── SystemCommandExecutors.qll │ │ │ │ ├── Templating.qll │ │ │ │ ├── Testing.qll │ │ │ │ ├── TestingCustomizations.qll │ │ │ │ ├── TorrentLibraries.qll │ │ │ │ ├── Typeahead.qll │ │ │ │ ├── UriLibraries.qll │ │ │ │ ├── Vue.qll │ │ │ │ ├── WebSocket.qll │ │ │ │ ├── XmlParsers.qll │ │ │ │ ├── jQuery.qll │ │ │ │ └── xUnit.qll │ │ │ │ ├── heuristics │ │ │ │ ├── AdditionalFrameworks.qll │ │ │ │ ├── AdditionalPromises.qll │ │ │ │ ├── AdditionalRouteHandlers.qll │ │ │ │ ├── AdditionalSinks.qll │ │ │ │ ├── AdditionalSources.qll │ │ │ │ ├── AdditionalTaintSteps.qll │ │ │ │ ├── HeuristicSinks.qll │ │ │ │ ├── SyntacticHeuristics.qll │ │ │ │ └── all.qll │ │ │ │ ├── internal │ │ │ │ ├── CachedStages.qll │ │ │ │ └── StmtContainers.qll │ │ │ │ ├── linters │ │ │ │ ├── ESLint.qll │ │ │ │ ├── JSLint.qll │ │ │ │ └── Linting.qll │ │ │ │ ├── meta │ │ │ │ └── ExtractionMetrics.qll │ │ │ │ └── security │ │ │ │ ├── CryptoAlgorithms.qll │ │ │ │ ├── IncompleteBlacklistSanitizer.qll │ │ │ │ ├── SensitiveActions.qll │ │ │ │ ├── TaintedObject.qll │ │ │ │ ├── TaintedObjectCustomizations.qll │ │ │ │ ├── UselessUseOfCat.qll │ │ │ │ ├── dataflow │ │ │ │ ├── BrokenCryptoAlgorithm.qll │ │ │ │ ├── BrokenCryptoAlgorithmCustomizations.qll │ │ │ │ ├── BuildArtifactLeak.qll │ │ │ │ ├── BuildArtifactLeakCustomizations.qll │ │ │ │ ├── CleartextLogging.qll │ │ │ │ ├── CleartextLoggingCustomizations.qll │ │ │ │ ├── CleartextStorage.qll │ │ │ │ ├── CleartextStorageCustomizations.qll │ │ │ │ ├── ClientSideUrlRedirect.qll │ │ │ │ ├── ClientSideUrlRedirectCustomizations.qll │ │ │ │ ├── CodeInjection.qll │ │ │ │ ├── CodeInjectionCustomizations.qll │ │ │ │ ├── CommandInjection.qll │ │ │ │ ├── CommandInjectionCustomizations.qll │ │ │ │ ├── ConditionalBypass.qll │ │ │ │ ├── ConditionalBypassCustomizations.qll │ │ │ │ ├── CorsMisconfigurationForCredentials.qll │ │ │ │ ├── CorsMisconfigurationForCredentialsCustomizations.qll │ │ │ │ ├── DOM.qll │ │ │ │ ├── DeepObjectResourceExhaustion.qll │ │ │ │ ├── DeepObjectResourceExhaustionCustomizations.qll │ │ │ │ ├── DifferentKindsComparisonBypass.qll │ │ │ │ ├── DifferentKindsComparisonBypassCustomizations.qll │ │ │ │ ├── DomBasedXss.qll │ │ │ │ ├── DomBasedXssCustomizations.qll │ │ │ │ ├── ExceptionXss.qll │ │ │ │ ├── ExternalAPIUsedWithUntrustedData.qll │ │ │ │ ├── ExternalAPIUsedWithUntrustedDataCustomizations.qll │ │ │ │ ├── FileAccessToHttp.qll │ │ │ │ ├── FileAccessToHttpCustomizations.qll │ │ │ │ ├── HardcodedCredentials.qll │ │ │ │ ├── HardcodedCredentialsCustomizations.qll │ │ │ │ ├── HardcodedDataInterpretedAsCode.qll │ │ │ │ ├── HardcodedDataInterpretedAsCodeCustomizations.qll │ │ │ │ ├── HostHeaderPoisoningInEmailGeneration.qll │ │ │ │ ├── HttpToFileAccess.qll │ │ │ │ ├── HttpToFileAccessCustomizations.qll │ │ │ │ ├── ImproperCodeSanitization.qll │ │ │ │ ├── ImproperCodeSanitizationCustomizations.qll │ │ │ │ ├── IncompleteHtmlAttributeSanitization.qll │ │ │ │ ├── IncompleteHtmlAttributeSanitizationCustomizations.qll │ │ │ │ ├── IndirectCommandArgument.qll │ │ │ │ ├── IndirectCommandInjection.qll │ │ │ │ ├── IndirectCommandInjectionCustomizations.qll │ │ │ │ ├── InsecureDownload.qll │ │ │ │ ├── InsecureDownloadCustomizations.qll │ │ │ │ ├── InsecureRandomness.qll │ │ │ │ ├── InsecureRandomnessCustomizations.qll │ │ │ │ ├── InsufficientPasswordHash.qll │ │ │ │ ├── InsufficientPasswordHashCustomizations.qll │ │ │ │ ├── LogInjection.qll │ │ │ │ ├── LoopBoundInjection.qll │ │ │ │ ├── LoopBoundInjectionCustomizations.qll │ │ │ │ ├── MissingRateLimiting.qll │ │ │ │ ├── NosqlInjection.qll │ │ │ │ ├── NosqlInjectionCustomizations.qll │ │ │ │ ├── PostMessageStar.qll │ │ │ │ ├── PostMessageStarCustomizations.qll │ │ │ │ ├── PropertyInjectionShared.qll │ │ │ │ ├── PrototypePollutingAssignment.qll │ │ │ │ ├── PrototypePollutingAssignmentCustomizations.qll │ │ │ │ ├── PrototypePollution.qll │ │ │ │ ├── PrototypePollutionCustomizations.qll │ │ │ │ ├── ReflectedXss.qll │ │ │ │ ├── ReflectedXssCustomizations.qll │ │ │ │ ├── RegExpInjection.qll │ │ │ │ ├── RegExpInjectionCustomizations.qll │ │ │ │ ├── RemoteFlowSources.qll │ │ │ │ ├── RemotePropertyInjection.qll │ │ │ │ ├── RemotePropertyInjectionCustomizations.qll │ │ │ │ ├── RequestForgery.qll │ │ │ │ ├── RequestForgeryCustomizations.qll │ │ │ │ ├── ServerSideUrlRedirect.qll │ │ │ │ ├── ServerSideUrlRedirectCustomizations.qll │ │ │ │ ├── ShellCommandInjectionFromEnvironment.qll │ │ │ │ ├── ShellCommandInjectionFromEnvironmentCustomizations.qll │ │ │ │ ├── SqlInjection.qll │ │ │ │ ├── SqlInjectionCustomizations.qll │ │ │ │ ├── StackTraceExposure.qll │ │ │ │ ├── StackTraceExposureCustomizations.qll │ │ │ │ ├── StoredXss.qll │ │ │ │ ├── TaintedFormatString.qll │ │ │ │ ├── TaintedFormatStringCustomizations.qll │ │ │ │ ├── TaintedPath.qll │ │ │ │ ├── TaintedPathCustomizations.qll │ │ │ │ ├── TemplateObjectInjection.qll │ │ │ │ ├── TemplateObjectInjectionCustomizations.qll │ │ │ │ ├── TypeConfusionThroughParameterTampering.qll │ │ │ │ ├── TypeConfusionThroughParameterTamperingCustomizations.qll │ │ │ │ ├── UnsafeDeserialization.qll │ │ │ │ ├── UnsafeDeserializationCustomizations.qll │ │ │ │ ├── UnsafeDynamicMethodAccess.qll │ │ │ │ ├── UnsafeDynamicMethodAccessCustomizations.qll │ │ │ │ ├── UnsafeJQueryPlugin.qll │ │ │ │ ├── UnsafeJQueryPluginCustomizations.qll │ │ │ │ ├── UnsafeShellCommandConstruction.qll │ │ │ │ ├── UnsafeShellCommandConstructionCustomizations.qll │ │ │ │ ├── UnvalidatedDynamicMethodCall.qll │ │ │ │ ├── UnvalidatedDynamicMethodCallCustomizations.qll │ │ │ │ ├── UrlConcatenation.qll │ │ │ │ ├── XmlBomb.qll │ │ │ │ ├── XmlBombCustomizations.qll │ │ │ │ ├── XpathInjection.qll │ │ │ │ ├── XpathInjectionCustomizations.qll │ │ │ │ ├── Xss.qll │ │ │ │ ├── XssThroughDom.qll │ │ │ │ ├── XssThroughDomCustomizations.qll │ │ │ │ ├── Xxe.qll │ │ │ │ ├── XxeCustomizations.qll │ │ │ │ ├── ZipSlip.qll │ │ │ │ └── ZipSlipCustomizations.qll │ │ │ │ └── performance │ │ │ │ ├── PolynomialReDoS.qll │ │ │ │ ├── PolynomialReDoSCustomizations.qll │ │ │ │ ├── ReDoSUtil.qll │ │ │ │ └── SuperlinearBackTracking.qll │ │ ├── semmlecode.javascript.dbscheme │ │ └── semmlecode.javascript.dbscheme.stats │ └── test │ │ ├── .project │ │ ├── .qlpath │ │ ├── ApiGraphs │ │ ├── VerifyAssertions.qll │ │ ├── argprops │ │ │ ├── VerifyAssertions.expected │ │ │ ├── VerifyAssertions.ql │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── async-await │ │ │ ├── VerifyAssertions.expected │ │ │ ├── VerifyAssertions.ql │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── bound-args │ │ │ ├── VerifyAssertions.expected │ │ │ ├── VerifyAssertions.ql │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── branching-flow │ │ │ ├── VerifyAssertions.expected │ │ │ ├── VerifyAssertions.ql │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── call-nodes │ │ │ ├── index.js │ │ │ ├── test.expected │ │ │ └── test.ql │ │ ├── classes │ │ │ ├── VerifyAssertions.expected │ │ │ ├── VerifyAssertions.ql │ │ │ ├── classes.js │ │ │ └── package.json │ │ ├── ctor-arg │ │ │ ├── VerifyAssertions.expected │ │ │ ├── VerifyAssertions.ql │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── custom-entry-point │ │ │ ├── VerifyAssertions.expected │ │ │ ├── VerifyAssertions.ql │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── cyclic │ │ │ ├── VerifyAssertions.expected │ │ │ ├── VerifyAssertions.ql │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── dynamic-prop-read │ │ │ ├── VerifyAssertions.expected │ │ │ ├── VerifyAssertions.ql │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── imprecise-export │ │ │ ├── VerifyAssertions.expected │ │ │ ├── VerifyAssertions.ql │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── imprecision │ │ │ ├── VerifyAssertions.expected │ │ │ ├── VerifyAssertions.ql │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── namespaced-package │ │ │ ├── VerifyAssertions.expected │ │ │ ├── VerifyAssertions.ql │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── nested-property-export │ │ │ ├── VerifyAssertions.expected │ │ │ ├── VerifyAssertions.ql │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── nonlocal │ │ │ ├── VerifyAssertions.expected │ │ │ ├── VerifyAssertions.ql │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── partial-invoke │ │ │ ├── VerifyAssertions.expected │ │ │ ├── VerifyAssertions.ql │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── promises │ │ │ ├── VerifyAssertions.expected │ │ │ ├── VerifyAssertions.ql │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── promisify │ │ │ ├── VerifyAssertions.expected │ │ │ ├── VerifyAssertions.ql │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── property-read-from-argument │ │ │ ├── VerifyAssertions.expected │ │ │ ├── VerifyAssertions.ql │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── reexport │ │ │ ├── VerifyAssertions.expected │ │ │ ├── VerifyAssertions.ql │ │ │ ├── index.js │ │ │ ├── lib │ │ │ │ ├── impl.js │ │ │ │ ├── stuff.js │ │ │ │ ├── utils.js │ │ │ │ └── utils2.js │ │ │ └── package.json │ │ ├── return-self │ │ │ ├── VerifyAssertions.expected │ │ │ ├── VerifyAssertions.ql │ │ │ ├── index.js │ │ │ └── package.json │ │ └── typed │ │ │ ├── NodeOfType.expected │ │ │ ├── NodeOfType.ql │ │ │ ├── VerifyAssertions.expected │ │ │ ├── VerifyAssertions.ql │ │ │ ├── index.ts │ │ │ ├── package.json │ │ │ ├── shim.d.ts │ │ │ └── tsconfig.json │ │ ├── experimental │ │ ├── PoI │ │ │ ├── CommandInjectionPoIConfiguration.expected │ │ │ ├── CommandInjectionPoIConfiguration.ql │ │ │ ├── ServerPoIConfiguration.expected │ │ │ ├── ServerPoIConfiguration.ql │ │ │ ├── ServerPoIs.expected │ │ │ ├── ServerPoIs.ql │ │ │ ├── TaintedPathPoIConfiguration.expected │ │ │ ├── TaintedPathPoIConfiguration.ql │ │ │ ├── TestCustomPoIs.expected │ │ │ ├── TestCustomPoIs.ql │ │ │ ├── TestStandardPoIs.expected │ │ │ ├── TestStandardPoIs.ql │ │ │ ├── XssPoIConfiguration.expected │ │ │ ├── XssPoIConfiguration.ql │ │ │ └── tst.js │ │ ├── README.md │ │ └── Security │ │ │ ├── CWE-094 │ │ │ ├── .github │ │ │ │ └── workflows │ │ │ │ │ ├── comment_issue.yml │ │ │ │ │ ├── pull_request_target_if_job.yml │ │ │ │ │ ├── pull_request_target_if_step.yml │ │ │ │ │ ├── pull_request_target_label_only.yml │ │ │ │ │ ├── pull_request_target_label_only_mapping.yml │ │ │ │ │ ├── pull_request_target_labels_mapping.yml │ │ │ │ │ ├── pull_request_target_labels_sequence.yml │ │ │ │ │ ├── pull_request_target_mapping.yml │ │ │ │ │ ├── pull_request_target_master.yml │ │ │ │ │ ├── pull_request_target_run.yml │ │ │ │ │ └── pull_request_target_sequence.yml │ │ │ ├── ExpressionInjection.expected │ │ │ ├── ExpressionInjection.qlref │ │ │ ├── UntrustedCheckout.expected │ │ │ ├── UntrustedCheckout.qlref │ │ │ └── empty.js │ │ │ └── CWE-770 │ │ │ ├── ResourceExhaustion.expected │ │ │ ├── ResourceExhaustion.qlref │ │ │ ├── documentaion-examples │ │ │ ├── ResourceExhaustion_timeout.js │ │ │ └── ResourceExhaustion_timeout_fixed.js │ │ │ └── resource-exhaustion.js │ │ ├── format.json │ │ ├── library-tests │ │ ├── AMD │ │ │ ├── a.js │ │ │ ├── dir │ │ │ │ └── b.js │ │ │ ├── lib │ │ │ │ ├── a.js │ │ │ │ ├── foo.js │ │ │ │ └── nested │ │ │ │ │ └── a.js │ │ │ ├── tests.expected │ │ │ ├── tests.ql │ │ │ ├── tst.js │ │ │ ├── tst2.js │ │ │ ├── tst3.js │ │ │ ├── tst4.js │ │ │ ├── tst5.js │ │ │ └── umd.js │ │ ├── AST │ │ │ └── StmtContainer │ │ │ │ ├── StmtContainer.expected │ │ │ │ ├── StmtContainer.ql │ │ │ │ ├── es2015.js │ │ │ │ ├── getEnclosingContainer.expected │ │ │ │ ├── getEnclosingContainer.ql │ │ │ │ └── tst.js │ │ ├── Arrays │ │ │ ├── DataFlow.expected │ │ │ ├── DataFlow.ql │ │ │ ├── arrays.js │ │ │ ├── printAst.expected │ │ │ └── printAst.ql │ │ ├── Barriers │ │ │ ├── SimpleBarrierGuard.expected │ │ │ ├── SimpleBarrierGuard.ql │ │ │ └── tst.js │ │ ├── BasicBlocks │ │ │ ├── BasicBlocks.expected │ │ │ ├── BasicBlocks.ql │ │ │ └── tst.js │ │ ├── Bundling │ │ │ ├── BrowserifyBundle.expected │ │ │ ├── BrowserifyBundle.ql │ │ │ ├── MultiLicenseBundle.expected │ │ │ ├── MultiLicenseBundle.ql │ │ │ ├── README │ │ │ ├── WebpackBundle.expected │ │ │ ├── WebpackBundle.ql │ │ │ ├── a.js │ │ │ ├── b.js │ │ │ ├── bundled.browserify+derequire.js │ │ │ ├── bundled.browserify.js │ │ │ ├── bundled.webpack.js │ │ │ ├── c.js │ │ │ ├── d.js │ │ │ ├── multiple-mixed-licenses.js │ │ │ ├── multiple-multiline-licenses.js │ │ │ ├── multiple-singleline-almost-licenses.js │ │ │ ├── multiple-singleline-licenses.js │ │ │ ├── multiple-singleline-non-license-comments.js │ │ │ ├── single-multiline-license.js │ │ │ └── single-singleline-license.js │ │ ├── CFG │ │ │ ├── CFG.expected │ │ │ ├── CFG.ql │ │ │ ├── StaticInit.expected │ │ │ ├── StaticInit.ql │ │ │ ├── arrowfn.js │ │ │ ├── classDecorators.ts │ │ │ ├── classes.js │ │ │ ├── decorated_parameter.ts │ │ │ ├── destructuring.js │ │ │ ├── enum.ts │ │ │ ├── fields.js │ │ │ ├── forof.js │ │ │ ├── globals.js │ │ │ ├── mixedMembers.js │ │ │ ├── options │ │ │ ├── short-circuit.js │ │ │ ├── staticFields.js │ │ │ ├── staticFieldsTS.ts │ │ │ └── switch.js │ │ ├── CallGraphs │ │ │ ├── AnnotatedTest │ │ │ │ ├── Test.expected │ │ │ │ ├── Test.ql │ │ │ │ ├── access-path.js │ │ │ │ ├── bound-function.js │ │ │ │ ├── client.js │ │ │ │ ├── constructor-field.ts │ │ │ │ ├── instance-calls.js │ │ │ │ ├── lib.js │ │ │ │ ├── options │ │ │ │ ├── reExportLib.js │ │ │ │ ├── reExportLibClient.js │ │ │ │ ├── reexport │ │ │ │ │ ├── a.js │ │ │ │ │ ├── b.js │ │ │ │ │ └── import.js │ │ │ │ ├── returned-function.js │ │ │ │ ├── static-calls.js │ │ │ │ └── this-calls.js │ │ │ └── FullTest │ │ │ │ ├── a.js │ │ │ │ ├── b.js │ │ │ │ ├── c.js │ │ │ │ ├── classes.js │ │ │ │ ├── es2015.js │ │ │ │ ├── getACallee.qll │ │ │ │ ├── getAFunctionValue.qll │ │ │ │ ├── getAnArgument.qll │ │ │ │ ├── getArgument.qll │ │ │ │ ├── getCalleeName.qll │ │ │ │ ├── getCalleeNode.qll │ │ │ │ ├── getLastArgument.qll │ │ │ │ ├── getNumArgument.qll │ │ │ │ ├── isImprecise.qll │ │ │ │ ├── isIncomplete.qll │ │ │ │ ├── isUncertain.qll │ │ │ │ ├── m.js │ │ │ │ ├── m2.js │ │ │ │ ├── n.js │ │ │ │ ├── non-strict.js │ │ │ │ ├── protoclass.js │ │ │ │ ├── reflection.js │ │ │ │ ├── strict.js │ │ │ │ ├── strict2.js │ │ │ │ ├── tests.expected │ │ │ │ ├── tests.ql │ │ │ │ ├── tst.js │ │ │ │ ├── tst2.js │ │ │ │ └── tst3.js │ │ ├── ClassNode │ │ │ ├── fields.ts │ │ │ ├── namespace.js │ │ │ ├── tests.expected │ │ │ ├── tests.ql │ │ │ ├── tst.js │ │ │ └── tst2.js │ │ ├── Classes │ │ │ ├── AccessorMethods.qll │ │ │ ├── ClassDefinition_getName.qll │ │ │ ├── ClassDefinition_getSuperClass.qll │ │ │ ├── ClassDefinitions.qll │ │ │ ├── ClassFlow.qll │ │ │ ├── ClassNodeConstructor.qll │ │ │ ├── ClassNodeInstanceMethod.qll │ │ │ ├── ClassNodeStaticMethod.qll │ │ │ ├── ComputedMethods.qll │ │ │ ├── ConstructorDefinitions.qll │ │ │ ├── FieldInits.qll │ │ │ ├── Fields.qll │ │ │ ├── MethodDefinitions.qll │ │ │ ├── MethodNames.qll │ │ │ ├── NewTargetExpr.qll │ │ │ ├── PrivateField.qll │ │ │ ├── StaticMethods.qll │ │ │ ├── SuperExpr.qll │ │ │ ├── SyntheticConstructors.qll │ │ │ ├── dataflow.js │ │ │ ├── fields.js │ │ │ ├── getAMember.qll │ │ │ ├── options │ │ │ ├── points.js │ │ │ ├── privateFields.js │ │ │ ├── staticConstructor.js │ │ │ ├── tests.expected │ │ │ ├── tests.ql │ │ │ └── tst.js │ │ ├── Closure │ │ │ ├── tests.expected │ │ │ ├── tests.ql │ │ │ └── tests │ │ │ │ ├── es6Module.js │ │ │ │ ├── es6ModuleDefault.js │ │ │ │ ├── globalModule.js │ │ │ │ ├── globalModuleDefault.js │ │ │ │ ├── googModule.js │ │ │ │ ├── googModuleDefault.js │ │ │ │ ├── importFromEs6.js │ │ │ │ ├── nestedAccess.js │ │ │ │ ├── requireFromEs6.js │ │ │ │ ├── requireFromGlobalModule.js │ │ │ │ ├── requireFromGoogModule.js │ │ │ │ └── uri.js │ │ ├── Comments │ │ │ ├── Comments.expected │ │ │ ├── Comments.ql │ │ │ ├── comments.js │ │ │ ├── next_token.expected │ │ │ └── next_token.ql │ │ ├── Comprehensions │ │ │ ├── comprehensions.js │ │ │ ├── options │ │ │ ├── tests.expected │ │ │ └── tests.ql │ │ ├── Constants │ │ │ ├── Constants.expected │ │ │ ├── Constants.ql │ │ │ ├── tst.js │ │ │ └── tst2.ts │ │ ├── CryptoLibraries │ │ │ ├── CryptographicKey.expected │ │ │ ├── CryptographicKey.ql │ │ │ ├── CryptographicOperation.expected │ │ │ ├── CryptographicOperation.ql │ │ │ └── tst.js │ │ ├── CustomAbstractValueDefinitions │ │ │ ├── CustomAbstractValueDefinitions.expected │ │ │ ├── CustomAbstractValueDefinitions.ql │ │ │ ├── CustomAbstractValueDefinitionsFlow.expected │ │ │ ├── CustomAbstractValueDefinitionsFlow.ql │ │ │ └── tst.js │ │ ├── CustomLoadStoreSteps │ │ │ ├── test.expected │ │ │ ├── test.ql │ │ │ └── tst.js │ │ ├── DOM │ │ │ ├── AttributeDefinition.qll │ │ │ ├── AttributeDefinition_getName.qll │ │ │ ├── AttributeDefinition_getStringValue.qll │ │ │ ├── AttributeDefinition_getValueNode.qll │ │ │ ├── Customizations.expected │ │ │ ├── Customizations.ql │ │ │ ├── Element.qll │ │ │ ├── ElementDefinition.qll │ │ │ ├── ElementDefinition_getAttribute.qll │ │ │ ├── ElementDefinition_getAttributeByName.qll │ │ │ ├── ElementDefinition_getRoot.qll │ │ │ ├── WebStorageWrite.qll │ │ │ ├── customization.js │ │ │ ├── event-handler-receiver.html │ │ │ ├── event-handler-receiver.js │ │ │ ├── externs │ │ │ │ └── externs.js │ │ │ ├── nameditems.js │ │ │ ├── tests.expected │ │ │ ├── tests.ql │ │ │ ├── tst-without-html-root-element.html │ │ │ ├── tst.html │ │ │ ├── tst.js │ │ │ └── tst.jsx │ │ ├── DataFlow │ │ │ ├── arguments.js │ │ │ ├── eval.js │ │ │ ├── options │ │ │ ├── sources.js │ │ │ ├── tests.expected │ │ │ ├── tests.ql │ │ │ ├── tst.js │ │ │ └── tst2.ts │ │ ├── Decorators │ │ │ ├── Decoratable.expected │ │ │ ├── Decoratable.ql │ │ │ ├── Decorator.expected │ │ │ ├── Decorator.ql │ │ │ ├── options │ │ │ ├── tst.js │ │ │ └── tst2.ts │ │ ├── DefUse │ │ │ ├── DefUsePair.expected │ │ │ ├── DefUsePair.ql │ │ │ ├── VarDefDestructuringSource.expected │ │ │ ├── VarDefDestructuringSource.ql │ │ │ ├── VarDefSource.expected │ │ │ ├── VarDefSource.ql │ │ │ ├── classes.js │ │ │ ├── es2015.js │ │ │ ├── es2015modules.js │ │ │ ├── fundecls.js │ │ │ ├── options │ │ │ └── tst.js │ │ ├── DependencyModuleImports │ │ │ ├── Test.expected │ │ │ ├── Test.ql │ │ │ └── src │ │ │ │ ├── dir-with-complex-package-json │ │ │ │ ├── package.json │ │ │ │ └── tst.js │ │ │ │ ├── dir-with-package-json │ │ │ │ ├── package.json │ │ │ │ └── tst.js │ │ │ │ ├── dir-with-package-lock-json │ │ │ │ ├── package-lock.json │ │ │ │ └── tst.js │ │ │ │ ├── dir-without-package-json │ │ │ │ └── tst.js │ │ │ │ └── package.json │ │ ├── Directives │ │ │ ├── KnownDirective.expected │ │ │ ├── KnownDirective.ql │ │ │ └── tst.js │ │ ├── ES20xxFeatures │ │ │ ├── ES20xxFeatures.expected │ │ │ ├── ES20xxFeatures.ql │ │ │ ├── es2015.js │ │ │ ├── es2016.js │ │ │ ├── es2017.js │ │ │ └── es2018.js │ │ ├── ESLint │ │ │ ├── ESLintGlobal.expected │ │ │ ├── ESLintGlobal.ql │ │ │ ├── sub │ │ │ │ ├── .eslintrc.json │ │ │ │ ├── .eslintrc.yml │ │ │ │ ├── package.json │ │ │ │ ├── subsub │ │ │ │ │ └── tst.js │ │ │ │ └── tst.js │ │ │ └── tst.js │ │ ├── EmailClients │ │ │ ├── EmailClients.expected │ │ │ ├── EmailClients.ql │ │ │ └── tst.js │ │ ├── Errors │ │ │ ├── Errors.expected │ │ │ ├── Errors.ql │ │ │ ├── options │ │ │ ├── setters.js │ │ │ └── tst.js │ │ ├── Expr │ │ │ ├── LetExpr.qll │ │ │ ├── RelationalComparisons.qll │ │ │ ├── YieldExpr.qll │ │ │ ├── assignment.js │ │ │ ├── assignment2.ts │ │ │ ├── binary.js │ │ │ ├── comparison.js │ │ │ ├── computedFieldNames.ts │ │ │ ├── es2015.js │ │ │ ├── functions.js │ │ │ ├── getChild.qll │ │ │ ├── getContainer.qll │ │ │ ├── getEnclosingFunction.qll │ │ │ ├── getEnclosingStmt.qll │ │ │ ├── getParent.qll │ │ │ ├── getTopLevel.qll │ │ │ ├── isPure.qll │ │ │ ├── legacyletexpr.js │ │ │ ├── mozextensions.js │ │ │ ├── nullSensitiveContexts.js │ │ │ ├── nullSensitiveContexts.qll │ │ │ ├── options │ │ │ ├── others.js │ │ │ ├── primaries.js │ │ │ ├── stripParens.qll │ │ │ ├── surrogates.js │ │ │ ├── tests.expected │ │ │ ├── tests.ql │ │ │ ├── unary.js │ │ │ └── update.js │ │ ├── Extend │ │ │ ├── ExtendCalls.expected │ │ │ ├── ExtendCalls.ql │ │ │ ├── package.json │ │ │ └── tst.js │ │ ├── Externs │ │ │ ├── Point.js │ │ │ ├── tests.expected │ │ │ └── tests.ql │ │ ├── FileTypes │ │ │ ├── FileTypes.expected │ │ │ ├── FileTypes.ql │ │ │ ├── jsTest.js │ │ │ ├── jsxTest.jsx │ │ │ ├── mjsTest.mjs │ │ │ ├── test.htm │ │ │ ├── test.html │ │ │ ├── test.json │ │ │ ├── test.raml │ │ │ ├── test.vue │ │ │ ├── test.xhtm │ │ │ ├── test.xhtml │ │ │ ├── test.yaml │ │ │ ├── test.yml │ │ │ ├── tsTest.ts │ │ │ └── tsxTest.tsx │ │ ├── Files │ │ │ ├── a.js │ │ │ ├── b │ │ │ │ └── c.js │ │ │ ├── binary.js │ │ │ ├── relativePaths.expected │ │ │ └── relativePaths.ql │ │ ├── Flow │ │ │ ├── ChatListScreen.js │ │ │ ├── a.js │ │ │ ├── a2.js │ │ │ ├── amd.js │ │ │ ├── amd2.js │ │ │ ├── amd3.js │ │ │ ├── amd4.js │ │ │ ├── amd5.js │ │ │ ├── arguments.js │ │ │ ├── b.js │ │ │ ├── backend.js │ │ │ ├── c.js │ │ │ ├── classAccessors.js │ │ │ ├── d.js │ │ │ ├── destructuring.js │ │ │ ├── e.js │ │ │ ├── es2015.js │ │ │ ├── esClient.js │ │ │ ├── esLib.js │ │ │ ├── f.js │ │ │ ├── fundecls.js │ │ │ ├── g.js │ │ │ ├── globals.html │ │ │ ├── h.js │ │ │ ├── h_import.js │ │ │ ├── implicit-returns.js │ │ │ ├── import.js │ │ │ ├── imports.ts │ │ │ ├── instances.js │ │ │ ├── jsx.js │ │ │ ├── m.js │ │ │ ├── mixed.js │ │ │ ├── mixins.js │ │ │ ├── n.js │ │ │ ├── namespace-reexport.js │ │ │ ├── nestedImport.js │ │ │ ├── nodeJsClient.js │ │ │ ├── nodeJsLib.js │ │ │ ├── nullish-coalescing-op.ts │ │ │ ├── o.js │ │ │ ├── objlit.js │ │ │ ├── options │ │ │ ├── reexport-d.js │ │ │ ├── reexport-mixins.js │ │ │ ├── reexport-unknown.js │ │ │ ├── reexport │ │ │ │ ├── client │ │ │ │ │ └── src │ │ │ │ │ │ └── index.js │ │ │ │ └── lib │ │ │ │ │ ├── index.js │ │ │ │ │ ├── options │ │ │ │ │ └── src │ │ │ │ │ └── utils │ │ │ │ │ └── util.js │ │ │ ├── refinements.js │ │ │ ├── tests.expected │ │ │ ├── tests.ql │ │ │ ├── ts.ts │ │ │ ├── ts2.ts │ │ │ ├── tsTest.ts │ │ │ ├── tst.js │ │ │ ├── tst.mjs │ │ │ ├── tst2.js │ │ │ └── with.js │ │ ├── FlowCustomisation │ │ │ ├── customValues.expected │ │ │ ├── customValues.ql │ │ │ └── tst.js │ │ ├── FlowLabels │ │ │ ├── DefaultFlowLabels.expected │ │ │ ├── DefaultFlowLabels.ql │ │ │ └── tst.js │ │ ├── Functions │ │ │ ├── Function.qll │ │ │ ├── ReturnStmt.qll │ │ │ ├── ReturnedExpression.qll │ │ │ ├── arrowfns.js │ │ │ ├── defaultargs.js │ │ │ ├── exprclosures.js │ │ │ ├── generators.js │ │ │ ├── getArgumentsVariable.qll │ │ │ ├── getBody.qll │ │ │ ├── getBodyStmt.qll │ │ │ ├── getDefaultArguments.qll │ │ │ ├── getEnclosingStmt.qll │ │ │ ├── getId.qll │ │ │ ├── getParameter.qll │ │ │ ├── getScope.qll │ │ │ ├── getVariable.qll │ │ │ ├── hasRestParameter.qll │ │ │ ├── isGenerator.qll │ │ │ ├── isRestParameter.qll │ │ │ ├── options │ │ │ ├── restparms.js │ │ │ ├── tests.expected │ │ │ ├── tests.ql │ │ │ ├── tst.js │ │ │ └── usesArgumentsObject.qll │ │ ├── Generators │ │ │ ├── DataFlow.expected │ │ │ ├── DataFlow.ql │ │ │ └── generators.js │ │ ├── GlobalAccessPaths │ │ │ ├── GlobalAccessPaths.expected │ │ │ ├── GlobalAccessPaths.ql │ │ │ ├── other_ns.js │ │ │ └── test.js │ │ ├── HTML │ │ │ ├── HTMLElementAndHTMLAttribute │ │ │ │ ├── options │ │ │ │ ├── printAst.expected │ │ │ │ ├── printAst.ql │ │ │ │ ├── tests.expected │ │ │ │ ├── tests.ql │ │ │ │ └── tst.html │ │ │ ├── HtmlComments │ │ │ │ ├── HtmlComment.expected │ │ │ │ ├── HtmlComment.ql │ │ │ │ └── tst.html │ │ │ ├── HtmlScript │ │ │ │ ├── ScriptElement_getScript.expected │ │ │ │ ├── ScriptElement_getScript.ql │ │ │ │ ├── tst.html │ │ │ │ └── tst.js │ │ │ └── HtmlText │ │ │ │ ├── HtmlText.expected │ │ │ │ ├── HtmlText.html │ │ │ │ ├── HtmlText.ql │ │ │ │ └── options │ │ ├── HtmlSanitizers │ │ │ ├── HtmlSanitizerCalls.expected │ │ │ ├── HtmlSanitizerCalls.ql │ │ │ ├── closure.js │ │ │ ├── package.json │ │ │ └── tst.js │ │ ├── IIFE │ │ │ ├── IIFE.expected │ │ │ ├── IIFE.ql │ │ │ ├── argumentPassing.expected │ │ │ ├── argumentPassing.ql │ │ │ ├── es2015.js │ │ │ └── tst.js │ │ ├── InterProceduralFlow │ │ │ ├── DataFlowConfig.qll │ │ │ ├── a.js │ │ │ ├── async.js │ │ │ ├── b.js │ │ │ ├── callback.js │ │ │ ├── constructor-calls.js │ │ │ ├── custom.js │ │ │ ├── destructuring.js │ │ │ ├── esClient.js │ │ │ ├── esLib.js │ │ │ ├── fake-document.js │ │ │ ├── global-forin1.js │ │ │ ├── global-forin2.js │ │ │ ├── global.js │ │ │ ├── global2.js │ │ │ ├── mixedExports.js │ │ │ ├── mixedExportsClient.js │ │ │ ├── nodeJsClient.js │ │ │ ├── nodeJsLib.js │ │ │ ├── partial.js │ │ │ ├── promises.js │ │ │ ├── properties.js │ │ │ ├── properties2.js │ │ │ ├── tests.expected │ │ │ ├── tests.ql │ │ │ ├── tst.js │ │ │ ├── tst2.js │ │ │ ├── tst3.js │ │ │ ├── tst4.js │ │ │ ├── tst5.mjs │ │ │ ├── tst6.mjs │ │ │ └── underscore.js │ │ ├── JSDoc │ │ │ ├── NameResolution │ │ │ │ ├── bar.js │ │ │ │ ├── closure.js │ │ │ │ ├── foo.js │ │ │ │ ├── test.expected │ │ │ │ └── test.ql │ │ │ └── Nodes │ │ │ │ ├── COPYING │ │ │ │ ├── JSDocAppliedTypeExpr.qll │ │ │ │ ├── JSDocArrayTypeExpr.qll │ │ │ │ ├── JSDocFunctionTypeExpr.qll │ │ │ │ ├── JSDocNonNullableTypeExpr.qll │ │ │ │ ├── JSDocNullableTypeExpr.qll │ │ │ │ ├── JSDocOptionalParameterTypeExpr.qll │ │ │ │ ├── JSDocRecordTypeExpr.qll │ │ │ │ ├── JSDocRestParameterTypeExpr.qll │ │ │ │ ├── JSDocTag.qll │ │ │ │ ├── JSDocTypeExpr.qll │ │ │ │ ├── JSDocUnionTypeExpr.qll │ │ │ │ ├── JSDoc_test.qll │ │ │ │ ├── ObjectExpr_getDocumentation.qll │ │ │ │ ├── ParExpr_getDocumentation.qll │ │ │ │ ├── Parameter_getDocumentation.qll │ │ │ │ ├── getDocumentation.qll │ │ │ │ ├── getParameterTag.qll │ │ │ │ ├── next_token.qll │ │ │ │ ├── tests.expected │ │ │ │ ├── tests.ql │ │ │ │ └── tst.js │ │ ├── JSLint │ │ │ ├── tests.expected │ │ │ ├── tests.ql │ │ │ └── tst.js │ │ ├── JSON │ │ │ ├── JSONError.expected │ │ │ ├── JSONError.ql │ │ │ ├── JSONObject.expected │ │ │ ├── JSONObject.ql │ │ │ ├── JSONValue.expected │ │ │ ├── JSONValue.ql │ │ │ ├── invalid.json │ │ │ ├── options │ │ │ ├── printAst.expected │ │ │ ├── printAst.ql │ │ │ └── tst.json │ │ ├── JSX │ │ │ ├── printAst.expected │ │ │ ├── printAst.ql │ │ │ ├── tests.expected │ │ │ ├── tests.ql │ │ │ ├── tst.js │ │ │ └── tstest.tsx │ │ ├── JsonParsers │ │ │ ├── JsonParserCalls.expected │ │ │ ├── JsonParserCalls.ql │ │ │ ├── angular.js │ │ │ ├── package.json │ │ │ └── tst.js │ │ ├── LabelledBarrierGuards │ │ │ ├── LabelledBarrierGuards.expected │ │ │ ├── LabelledBarrierGuards.ql │ │ │ └── tst.js │ │ ├── Lines │ │ │ ├── .gitattributes │ │ │ ├── IndentChar.expected │ │ │ ├── IndentChar.ql │ │ │ ├── Lines.expected │ │ │ ├── Lines.ql │ │ │ ├── options │ │ │ ├── tst1.js │ │ │ ├── tst2.js │ │ │ └── tst3.js │ │ ├── LocalObjects │ │ │ ├── method-calls.js │ │ │ ├── options │ │ │ ├── tests.expected │ │ │ ├── tests.ql │ │ │ ├── tst.js │ │ │ └── tst2.ts │ │ ├── MalformedPackageJson │ │ │ ├── Test.expected │ │ │ ├── Test.ql │ │ │ ├── nullContents │ │ │ │ └── package.json │ │ │ └── tst.js │ │ ├── ModuleImportNodes │ │ │ ├── CustomImport.expected │ │ │ ├── CustomImport.ql │ │ │ ├── ModuleImportNode.qll │ │ │ ├── ModuleImportNode_getAConstructorInvocation.qll │ │ │ ├── ModuleImportNode_getAMemberCall.qll │ │ │ ├── ModuleImportNode_getAMemberInvocation.qll │ │ │ ├── ModuleImportNode_getAMethodCall.qll │ │ │ ├── ModuleImportNode_getAPropertyRead.qll │ │ │ ├── ModuleImportNode_getPath.qll │ │ │ ├── TSGlobalImport.expected │ │ │ ├── TSGlobalImport.ql │ │ │ ├── amd1.js │ │ │ ├── amd2.js │ │ │ ├── client1.ts │ │ │ ├── client2.ts │ │ │ ├── client2_lazy.ts │ │ │ ├── customImport.js │ │ │ ├── declare-module-client.ts │ │ │ ├── declare-module-client2.ts │ │ │ ├── declare-module.d.ts │ │ │ ├── decls.ts │ │ │ ├── destructuringES6.js │ │ │ ├── destructuringRequire.js │ │ │ ├── framework1.d.ts │ │ │ ├── instanceThroughDefaultImport.js │ │ │ ├── instanceThroughNamespaceImport.js │ │ │ ├── instanceThroughRequire.js │ │ │ ├── moduleImport.qll │ │ │ ├── moduleImportProp.qll │ │ │ ├── moduleMember.qll │ │ │ ├── moduleUses.js │ │ │ ├── process.js │ │ │ ├── process2.js │ │ │ ├── tests.expected │ │ │ └── tests.ql │ │ ├── ModuleTypes │ │ │ ├── commonjs.cjs │ │ │ ├── commonjsPackage │ │ │ │ ├── innermjs.mjs │ │ │ │ ├── package.json │ │ │ │ └── tst.js │ │ │ ├── import.js │ │ │ ├── mjs.mjs │ │ │ ├── modulePackage │ │ │ │ ├── package.json │ │ │ │ ├── subdir │ │ │ │ │ ├── innercjs.cjs │ │ │ │ │ └── subfile.js │ │ │ │ └── tst.js │ │ │ ├── require.js │ │ │ ├── script.js │ │ │ ├── tests.expected │ │ │ └── tests.ql │ │ ├── Modules │ │ │ ├── a.js │ │ │ ├── b.js │ │ │ ├── d.js │ │ │ ├── e.js │ │ │ ├── es2015_require.js │ │ │ ├── export-in-mjs.mjs │ │ │ ├── exports.js │ │ │ ├── f.ts │ │ │ ├── g.ts │ │ │ ├── import-in-mjs.mjs │ │ │ ├── import-ts-with-js-extension.ts │ │ │ ├── importcss.js │ │ │ ├── importmeta.js │ │ │ ├── m │ │ │ │ ├── c.js │ │ │ │ └── options │ │ │ ├── options │ │ │ ├── reExportNamespace.js │ │ │ ├── reExportNamespaceClient.js │ │ │ ├── tests.expected │ │ │ ├── tests.ql │ │ │ ├── tst.html │ │ │ └── unresolved.js │ │ ├── NPM │ │ │ ├── src │ │ │ │ ├── index.js │ │ │ │ ├── lib │ │ │ │ │ ├── tst.js │ │ │ │ │ └── tst2.js │ │ │ │ ├── node_modules │ │ │ │ │ ├── a │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── b │ │ │ │ │ │ ├── lib │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ └── util.ts │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── c │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ └── src │ │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── d │ │ │ │ │ │ ├── main.js │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── nested │ │ │ │ │ │ ├── node_modules │ │ │ │ │ │ │ └── a │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ └── tst3.js │ │ │ │ │ ├── third-party-module │ │ │ │ │ │ ├── fancy.js │ │ │ │ │ │ └── package.json │ │ │ │ │ └── tst2.js │ │ │ │ ├── package.json │ │ │ │ ├── tst.js │ │ │ │ └── tst2.js │ │ │ ├── tests.expected │ │ │ └── tests.ql │ │ ├── NodeJS │ │ │ ├── a.js │ │ │ ├── b.js │ │ │ ├── d.js │ │ │ ├── e.js │ │ │ ├── f.js │ │ │ ├── g.js │ │ │ ├── index.js │ │ │ ├── mjs-files │ │ │ │ ├── createRequire.mjs │ │ │ │ ├── depend-on-me.js │ │ │ │ ├── depend-on-me.mjs │ │ │ │ ├── import-from-js.js │ │ │ │ ├── import-from-mjs.mjs │ │ │ │ ├── require-from-js.js │ │ │ │ └── require-from-mjs.mjs │ │ │ ├── reexport │ │ │ │ ├── a.js │ │ │ │ └── b.js │ │ │ ├── sub │ │ │ │ ├── c.js │ │ │ │ └── f.js │ │ │ ├── tests.expected │ │ │ └── tests.ql │ │ ├── Nodes │ │ │ ├── globalObjectRef.expected │ │ │ ├── globalObjectRef.ql │ │ │ ├── globalVarRef.expected │ │ │ ├── globalVarRef.ql │ │ │ ├── tst.js │ │ │ ├── tst2.js │ │ │ └── tst3.js │ │ ├── OptionalChaining │ │ │ ├── OptionalChainRoot.expected │ │ │ ├── OptionalChainRoot.ql │ │ │ ├── OptionalUse.expected │ │ │ ├── OptionalUse.ql │ │ │ ├── ShortCircuiting.expected │ │ │ ├── ShortCircuiting.ql │ │ │ ├── options │ │ │ ├── short-circuiting-typescript.ts │ │ │ ├── short-circuiting.js │ │ │ ├── tst-typescript.ts │ │ │ └── tst.js │ │ ├── PackageExports │ │ │ ├── absent_main │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ ├── esmodules │ │ │ │ ├── main.js │ │ │ │ └── package.json │ │ │ ├── index.js │ │ │ ├── lib1 │ │ │ │ ├── bar.js │ │ │ │ ├── baz.js │ │ │ │ ├── foo.js │ │ │ │ ├── index.js │ │ │ │ ├── main.js │ │ │ │ ├── package.json │ │ │ │ ├── reexport │ │ │ │ │ ├── a.js │ │ │ │ │ └── b.js │ │ │ │ └── sublib │ │ │ │ │ ├── package.json │ │ │ │ │ └── sublib.js │ │ │ ├── tests.expected │ │ │ └── tests.ql │ │ ├── PartialInvokeNode │ │ │ ├── closure.js │ │ │ ├── test.expected │ │ │ ├── test.ql │ │ │ └── tst.js │ │ ├── Patterns │ │ │ ├── tests.expected │ │ │ ├── tests.ql │ │ │ └── tst.js │ │ ├── Portals │ │ │ ├── PortalEntry.expected │ │ │ ├── PortalEntry.ql │ │ │ ├── PortalExit.expected │ │ │ ├── PortalExit.ql │ │ │ └── src │ │ │ │ ├── bluebird │ │ │ │ ├── index.js │ │ │ │ ├── package.json │ │ │ │ └── tst.js │ │ │ │ ├── cyclic │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ │ ├── m1 │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ │ ├── m2 │ │ │ │ ├── main.js │ │ │ │ └── package.json │ │ │ │ ├── m3 │ │ │ │ ├── index.js │ │ │ │ ├── package.json │ │ │ │ ├── tst.js │ │ │ │ ├── tst2.js │ │ │ │ └── tst3.js │ │ │ │ ├── m4 │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ │ └── m5 │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ ├── PostDominance │ │ │ ├── DefCallExample.expected │ │ │ ├── DefCallExample.ql │ │ │ ├── PostDominance.expected │ │ │ ├── PostDominance.ql │ │ │ └── tst.js │ │ ├── Promises │ │ │ ├── AdditionalPromises.expected │ │ │ ├── AdditionalPromises.ql │ │ │ ├── PromiseDefinition.qll │ │ │ ├── PromiseDefinition_getACatchHandler.qll │ │ │ ├── PromiseDefinition_getAFinallyHandler.qll │ │ │ ├── PromiseDefinition_getARejectHandler.qll │ │ │ ├── PromiseDefinition_getAResolveHandler.qll │ │ │ ├── PromiseDefinition_getExecutor.qll │ │ │ ├── PromiseDefinition_getRejectParameter.qll │ │ │ ├── PromiseDefinition_getResolveParameter.qll │ │ │ ├── ResolvedPromiseDefinition.qll │ │ │ ├── additional-promises.js │ │ │ ├── flow.js │ │ │ ├── flow.qll │ │ │ ├── flow2.js │ │ │ ├── interflow.js │ │ │ ├── options │ │ │ ├── promises.js │ │ │ ├── tests.expected │ │ │ └── tests.ql │ │ ├── PropWrite │ │ │ ├── PropWrite.qll │ │ │ ├── PropWriteBase.qll │ │ │ ├── PropWritePropName.qll │ │ │ ├── PropWriteRhs.qll │ │ │ ├── classes.ts │ │ │ ├── getAPropertyRead.qll │ │ │ ├── getAPropertyRead2.qll │ │ │ ├── getAPropertyReference.qll │ │ │ ├── getAPropertyReference2.qll │ │ │ ├── getAPropertySource.qll │ │ │ ├── getAPropertyWrite.qll │ │ │ ├── getAPropertyWrite2.qll │ │ │ ├── hasPropertyWrite.qll │ │ │ ├── tests.expected │ │ │ ├── tests.ql │ │ │ └── tst.js │ │ ├── RangeAnalysis │ │ │ ├── DeadBranch.expected │ │ │ ├── DeadBranch.ql │ │ │ ├── constants.js │ │ │ ├── expressions.js │ │ │ ├── length.js │ │ │ ├── loop.js │ │ │ ├── plus.js │ │ │ └── tst.js │ │ ├── Receiver │ │ │ ├── GetReceiver.expected │ │ │ ├── GetReceiver.ql │ │ │ └── tst.js │ │ ├── RecursionPrevention │ │ │ ├── SourceNodeFlowsTo.expected │ │ │ ├── SourceNodeFlowsTo.ql │ │ │ └── tst.js │ │ ├── Refinements │ │ │ ├── Refinement.expected │ │ │ ├── Refinement.ql │ │ │ ├── Refinement_getRefinedVar.expected │ │ │ ├── Refinement_getRefinedVar.ql │ │ │ └── tst.js │ │ ├── RegExp │ │ │ ├── Bounds │ │ │ │ ├── Bounds.expected │ │ │ │ ├── Bounds.ql │ │ │ │ └── tst.js │ │ │ ├── CharacterRange │ │ │ │ ├── CharaterRange.expected │ │ │ │ ├── CharaterRange.ql │ │ │ │ └── tst.js │ │ │ ├── EscapeInString │ │ │ │ ├── EscapeInString.expected │ │ │ │ ├── EscapeInString.ql │ │ │ │ └── tst.js │ │ │ ├── MissingUnicodeFlag │ │ │ │ ├── MissingUnicodeFlag.expected │ │ │ │ ├── MissingUnicodeFlag.ql │ │ │ │ └── tst.js │ │ │ └── predecessors_and_successors │ │ │ │ ├── getPredecessor.expected │ │ │ │ ├── getPredecessor.ql │ │ │ │ ├── getSuccessor.expected │ │ │ │ ├── getSuccessor.ql │ │ │ │ └── tst.js │ │ ├── RemoteFlowSources │ │ │ ├── RemoteFlowSources.expected │ │ │ ├── RemoteFlowSources.ql │ │ │ ├── codeql-javascript-remote-flow-sources.json │ │ │ └── tst.js │ │ ├── SSA │ │ │ ├── GetRhsNode │ │ │ │ ├── GetRhsNode.expected │ │ │ │ ├── GetRhsNode.ql │ │ │ │ └── tst.js │ │ │ ├── SSADefinition │ │ │ │ ├── SSADefinition.expected │ │ │ │ ├── SSADefinition.ql │ │ │ │ └── tst.js │ │ │ └── StressTest │ │ │ │ ├── tst.expected │ │ │ │ ├── tst.js │ │ │ │ └── tst.ql │ │ ├── Security │ │ │ ├── CWE-338 │ │ │ │ ├── InsecureRandomnessSource.expected │ │ │ │ ├── InsecureRandomnessSource.ql │ │ │ │ └── tst.js │ │ │ └── heuristics │ │ │ │ ├── HeuristicSink.expected │ │ │ │ ├── HeuristicSink.ql │ │ │ │ ├── HeuristicSource.expected │ │ │ │ ├── HeuristicSource.ql │ │ │ │ ├── sinks.js │ │ │ │ └── sources.js │ │ ├── SensitiveActions │ │ │ ├── tests.expected │ │ │ ├── tests.ql │ │ │ └── tst.js │ │ ├── SourceMaps │ │ │ ├── SourceMaps.expected │ │ │ ├── SourceMaps.ql │ │ │ └── tst.js │ │ ├── SpreadRestProperties │ │ │ ├── RestPropertyPatterns.expected │ │ │ ├── RestPropertyPatterns.ql │ │ │ ├── SpreadProperties.expected │ │ │ ├── SpreadProperties.ql │ │ │ └── tst.js │ │ ├── Strictness │ │ │ ├── a.js │ │ │ ├── b.js │ │ │ ├── c.js │ │ │ ├── strictness.expected │ │ │ └── strictness.ql │ │ ├── StringConcatenation │ │ │ ├── ClassContainsTwo.expected │ │ │ ├── ClassContainsTwo.ql │ │ │ ├── ContainsTwo.expected │ │ │ ├── ContainsTwo.ql │ │ │ ├── StringOps.expected │ │ │ ├── StringOps.ql │ │ │ ├── closure.js │ │ │ ├── html-concat.js │ │ │ └── tst.js │ │ ├── StringOps │ │ │ ├── EndsWith │ │ │ │ ├── EndsWith.expected │ │ │ │ ├── EndsWith.ql │ │ │ │ └── tst.js │ │ │ ├── Includes │ │ │ │ ├── Includes.expected │ │ │ │ ├── Includes.ql │ │ │ │ └── tst.js │ │ │ ├── RegExpTest │ │ │ │ ├── RegExpTest.expected │ │ │ │ ├── RegExpTest.ql │ │ │ │ └── tst.js │ │ │ └── StartsWith │ │ │ │ ├── StartsWith.expected │ │ │ │ ├── StartsWith.ql │ │ │ │ └── tst.js │ │ ├── TaintBarriers │ │ │ ├── ExampleConfiguration.qll │ │ │ ├── tests.expected │ │ │ ├── tests.ql │ │ │ └── tst.js │ │ ├── TaintTracking │ │ │ ├── BasicTaintTracking.expected │ │ │ ├── BasicTaintTracking.ql │ │ │ ├── DataFlowTracking.expected │ │ │ ├── DataFlowTracking.ql │ │ │ ├── access-path-sanitizer.js │ │ │ ├── addexpr.js │ │ │ ├── advanced-callgraph.js │ │ │ ├── array-callback.js │ │ │ ├── array-mutation.js │ │ │ ├── booleanOps.js │ │ │ ├── bound-function.js │ │ │ ├── callbacks.js │ │ │ ├── capture-flow.js │ │ │ ├── captured-sanitizer.js │ │ │ ├── closure.js │ │ │ ├── constructor-calls.js │ │ │ ├── destruct.js │ │ │ ├── exceptions.js │ │ │ ├── exportedReactComponent.jsx │ │ │ ├── getters-and-setters.js │ │ │ ├── importedReactComponent.jsx │ │ │ ├── indexOf.js │ │ │ ├── json-stringify.js │ │ │ ├── nested-props.js │ │ │ ├── object-bypass-sanitizer.js │ │ │ ├── partialCalls.js │ │ │ ├── promise.js │ │ │ ├── rxjs.js │ │ │ ├── sanitizer-function.js │ │ │ ├── sanitizer-guards.js │ │ │ ├── spread.js │ │ │ ├── static-capture-groups.js │ │ │ ├── string-replace.js │ │ │ ├── thisAssignments.js │ │ │ ├── tst.js │ │ │ └── xml.js │ │ ├── Templates │ │ │ ├── folding.js │ │ │ ├── templates-revised.js │ │ │ ├── templates.js │ │ │ ├── tests.expected │ │ │ └── tests.ql │ │ ├── ThisExpr │ │ │ ├── ThisExpr_analyzed.expected │ │ │ ├── ThisExpr_analyzed.ql │ │ │ ├── getBasicBlock.expected │ │ │ ├── getBasicBlock.ql │ │ │ ├── getBinder.expected │ │ │ ├── getBinder.ql │ │ │ ├── module-exports.js │ │ │ ├── options │ │ │ └── tst.js │ │ ├── Tokens │ │ │ ├── Tokens.expected │ │ │ ├── Tokens.ql │ │ │ └── tst.js │ │ ├── TorrentLibraries │ │ │ ├── ParsedTorrent.expected │ │ │ ├── ParsedTorrent.ql │ │ │ ├── UserControlledTorrentInfo.expected │ │ │ ├── UserControlledTorrentInfo.ql │ │ │ ├── parsedTorrentRef.expected │ │ │ ├── parsedTorrentRef.ql │ │ │ └── tst.js │ │ ├── TrailingFunctionCommas │ │ │ ├── FunctionWithTrailingComma.expected │ │ │ ├── FunctionWithTrailingComma.ql │ │ │ ├── InvocationWithTrailingComma.expected │ │ │ ├── InvocationWithTrailingComma.ql │ │ │ └── tst.js │ │ ├── TypeAnnotations │ │ │ ├── JSDoc │ │ │ │ ├── JSDocTypeAnnotations.expected │ │ │ │ ├── JSDocTypeAnnotations.ql │ │ │ │ └── tst.js │ │ │ └── TSUnresolvedQualifiedName │ │ │ │ ├── QualifiedNames.expected │ │ │ │ ├── QualifiedNames.ql │ │ │ │ ├── node_modules │ │ │ │ └── @types │ │ │ │ │ └── resolved │ │ │ │ │ └── index.d.ts │ │ │ │ ├── tsconfig.json │ │ │ │ └── tst.ts │ │ ├── TypeInference │ │ │ ├── AnalyzedModule │ │ │ │ ├── amd.js │ │ │ │ ├── amd2.js │ │ │ │ ├── amd3.js │ │ │ │ ├── commonjs.js │ │ │ │ ├── commonjs2.js │ │ │ │ ├── es6.js │ │ │ │ ├── m.js │ │ │ │ ├── tests.expected │ │ │ │ └── tests.ql │ │ │ ├── CallWithAnalyzedReturnFlow │ │ │ │ ├── CallWithAnalyzedReturnFlow.expected │ │ │ │ ├── CallWithAnalyzedReturnFlow.ql │ │ │ │ ├── CalleeNodeValue.expected │ │ │ │ ├── CalleeNodeValue.ql │ │ │ │ ├── InvokeNodeValue.expected │ │ │ │ ├── InvokeNodeValue.ql │ │ │ │ ├── myModule.js │ │ │ │ └── tst.js │ │ │ ├── FunctionWithAnalyzedParameters │ │ │ │ ├── FunctionWithAnalyzedParameters.expected │ │ │ │ ├── FunctionWithAnalyzedParameters.ql │ │ │ │ ├── FunctionWithAnalyzedParameters_argumentPassing.expected │ │ │ │ ├── FunctionWithAnalyzedParameters_argumentPassing.ql │ │ │ │ ├── FunctionWithAnalyzedParameters_inference.expected │ │ │ │ ├── FunctionWithAnalyzedParameters_inference.ql │ │ │ │ └── tst.js │ │ │ ├── LocalFunction │ │ │ │ ├── LocalFunction.expected │ │ │ │ ├── LocalFunction.js │ │ │ │ ├── LocalFunction.ql │ │ │ │ └── LocalFunction_arguments.js │ │ │ ├── MixedAnalyzedParametersAndAnalyzedReturnFlow │ │ │ │ ├── test.expected │ │ │ │ ├── test.ql │ │ │ │ └── tst.js │ │ │ ├── NullishCoalescing │ │ │ │ ├── options │ │ │ │ ├── test.expected │ │ │ │ ├── test.ql │ │ │ │ └── tst.js │ │ │ └── OptionalChaining │ │ │ │ ├── options │ │ │ │ ├── test.expected │ │ │ │ ├── test.ql │ │ │ │ └── tst.js │ │ ├── TypeScript │ │ │ ├── AbstractMembers │ │ │ │ ├── AbstractClasses.expected │ │ │ │ ├── AbstractClasses.ql │ │ │ │ ├── IsAbstract.expected │ │ │ │ ├── IsAbstract.ql │ │ │ │ ├── UnreachableMembers.expected │ │ │ │ ├── UnreachableMembers.ql │ │ │ │ └── tst.ts │ │ │ ├── Ambients │ │ │ │ ├── AmbientCFG.expected │ │ │ │ ├── AmbientCFG.ql │ │ │ │ ├── Ambients.expected │ │ │ │ ├── Ambients.ql │ │ │ │ └── tst.ts │ │ │ ├── ArrayTypes │ │ │ │ ├── tests.expected │ │ │ │ ├── tests.ql │ │ │ │ ├── tsconfig.json │ │ │ │ └── tst.ts │ │ │ ├── BaseTypes │ │ │ │ ├── BaseTypes.expected │ │ │ │ ├── BaseTypes.ql │ │ │ │ ├── SelfTypes.expected │ │ │ │ ├── SelfTypes.ql │ │ │ │ ├── tsconfig.json │ │ │ │ └── tst.ts │ │ │ ├── BigInts │ │ │ │ ├── tests.expected │ │ │ │ ├── tests.ql │ │ │ │ ├── tsconfig.json │ │ │ │ └── tst.ts │ │ │ ├── BindingPattern │ │ │ │ ├── VarDecl.expected │ │ │ │ ├── VarDecl.ql │ │ │ │ └── tst.tsx │ │ │ ├── CallGraph │ │ │ │ ├── CallGraph.expected │ │ │ │ ├── CallGraph.ql │ │ │ │ ├── tsconfig.json │ │ │ │ └── tst.ts │ │ │ ├── CallResolution │ │ │ │ ├── CallResolution.expected │ │ │ │ ├── CallResolution.ql │ │ │ │ ├── CallTarget.expected │ │ │ │ ├── CallTarget.ql │ │ │ │ ├── tsconfig.json │ │ │ │ └── tst.ts │ │ │ ├── CallSignatureTypes │ │ │ │ ├── test.expected │ │ │ │ ├── test.ql │ │ │ │ ├── tsconfig.json │ │ │ │ └── tst.ts │ │ │ ├── CallSignatures │ │ │ │ ├── test.expected │ │ │ │ ├── test.ql │ │ │ │ └── tst.ts │ │ │ ├── CompiledOutput │ │ │ │ ├── index.js │ │ │ │ ├── index.ts │ │ │ │ ├── test.expected │ │ │ │ └── test.ql │ │ │ ├── ConstKeyword │ │ │ │ ├── ConstKeyword.expected │ │ │ │ ├── ConstKeyword.ql │ │ │ │ └── tst.ts │ │ │ ├── DeclarationFiles │ │ │ │ ├── ReferenceImports.expected │ │ │ │ ├── ReferenceImports.ql │ │ │ │ ├── TypeResolution.expected │ │ │ │ ├── TypeResolution.ql │ │ │ │ ├── client1.ts │ │ │ │ ├── client2.ts │ │ │ │ ├── client2_lazy.ts │ │ │ │ ├── declare-module-client.ts │ │ │ │ ├── declare-module-client2.ts │ │ │ │ ├── declare-module.d.ts │ │ │ │ ├── framework1.d.ts │ │ │ │ ├── node_modules │ │ │ │ │ └── @types │ │ │ │ │ │ └── framework2 │ │ │ │ │ │ └── index.d.ts │ │ │ │ └── tsconfig.json │ │ │ ├── DeclareInClass │ │ │ │ ├── test.expected │ │ │ │ ├── test.ql │ │ │ │ └── tst.ts │ │ │ ├── DynamicImport │ │ │ │ ├── DynamicImport.expected │ │ │ │ ├── DynamicImport.ql │ │ │ │ └── tst.ts │ │ │ ├── EmbeddedInScript │ │ │ │ ├── Test.expected │ │ │ │ ├── Test.ql │ │ │ │ ├── htmlfile.html │ │ │ │ ├── other.ts │ │ │ │ ├── test.vue │ │ │ │ └── tsconfig.json │ │ │ ├── Enums │ │ │ │ ├── tests.expected │ │ │ │ ├── tests.ql │ │ │ │ └── tst.ts │ │ │ ├── EscapedText │ │ │ │ ├── IdentifierText.expected │ │ │ │ ├── IdentifierText.ql │ │ │ │ ├── StringLiteralText.expected │ │ │ │ ├── StringLiteralText.ql │ │ │ │ └── tst.ts │ │ │ ├── ExpansiveTypes │ │ │ │ ├── Types.expected │ │ │ │ ├── Types.ql │ │ │ │ ├── dummy.ts │ │ │ │ ├── expansive_by_inference.ts │ │ │ │ ├── expansive_class.ts │ │ │ │ ├── expansive_object_literal.ts │ │ │ │ ├── expansive_signature.ts │ │ │ │ ├── leading_into_expansion.ts │ │ │ │ ├── mutual.ts │ │ │ │ ├── mutual_multigraph.ts │ │ │ │ ├── shared_non_expansive.ts │ │ │ │ ├── simple.ts │ │ │ │ ├── through_non_expansive.ts │ │ │ │ ├── tsconfig.json │ │ │ │ └── used_from_expansion.ts │ │ │ ├── ExportAsNamespace │ │ │ │ ├── ExportAsNamespace.expected │ │ │ │ ├── ExportAsNamespace.ql │ │ │ │ └── tst.d.ts │ │ │ ├── ExportNamespaceSpecifier │ │ │ │ ├── client.ts │ │ │ │ ├── lib.ts │ │ │ │ ├── reexport.ts │ │ │ │ ├── test.expected │ │ │ │ └── test.ql │ │ │ ├── ExternalBaseTypes │ │ │ │ ├── BaseTypes.expected │ │ │ │ ├── BaseTypes.ql │ │ │ │ ├── node_modules │ │ │ │ │ └── @types │ │ │ │ │ │ └── mylib │ │ │ │ │ │ └── index.d.ts │ │ │ │ ├── options │ │ │ │ ├── tsconfig.json │ │ │ │ └── tst.ts │ │ │ ├── ExternalModules │ │ │ │ ├── ExternalModules.expected │ │ │ │ ├── ExternalModules.ql │ │ │ │ ├── Namespaces.expected │ │ │ │ ├── Namespaces.ql │ │ │ │ └── tst.ts │ │ │ ├── ExternalTypes │ │ │ │ ├── augmentation.ts │ │ │ │ ├── client_esmodule.ts │ │ │ │ ├── client_esmodule_extra.ts │ │ │ │ ├── client_legacy_global.ts │ │ │ │ ├── client_legacy_module.ts │ │ │ │ ├── client_modern_global.ts │ │ │ │ ├── client_modern_module.ts │ │ │ │ ├── node_modules │ │ │ │ │ └── @types │ │ │ │ │ │ ├── esmodule │ │ │ │ │ │ ├── index.d.ts │ │ │ │ │ │ ├── otherfile.d.ts │ │ │ │ │ │ └── util │ │ │ │ │ │ │ ├── extra.d.ts │ │ │ │ │ │ │ └── index.d.ts │ │ │ │ │ │ ├── legacy │ │ │ │ │ │ └── index.d.ts │ │ │ │ │ │ └── modern │ │ │ │ │ │ └── index.d.ts │ │ │ │ ├── options │ │ │ │ ├── tests.expected │ │ │ │ ├── tests.ql │ │ │ │ └── tsconfig.json │ │ │ ├── HasQualifiedNameFallback │ │ │ │ ├── Test.expected │ │ │ │ ├── Test.ql │ │ │ │ ├── relative.ts │ │ │ │ └── tst.ts │ │ │ ├── HasUnderlyingType │ │ │ │ ├── HasUnderlyingType.expected │ │ │ │ ├── HasUnderlyingType.ql │ │ │ │ ├── tsconfig.json │ │ │ │ └── tst.ts │ │ │ ├── HeritageClauses │ │ │ │ ├── GetSuperClass.expected │ │ │ │ ├── GetSuperClass.ql │ │ │ │ ├── GetSuperInterface.expected │ │ │ │ ├── GetSuperInterface.ql │ │ │ │ ├── Unreachable.expected │ │ │ │ ├── Unreachable.ql │ │ │ │ └── tst.ts │ │ │ ├── ImportEquals │ │ │ │ ├── esDefaultExport.ts │ │ │ │ ├── esNamedExports.ts │ │ │ │ ├── nodeFullExport.ts │ │ │ │ ├── nodeNamedExport.ts │ │ │ │ ├── taintSource.ts │ │ │ │ ├── tests.expected │ │ │ │ ├── tests.ql │ │ │ │ └── tst.ts │ │ │ ├── ImportMeta │ │ │ │ ├── test.expected │ │ │ │ ├── test.ql │ │ │ │ ├── tsconfig.json │ │ │ │ └── tst.ts │ │ │ ├── ImportOutDir │ │ │ │ ├── nonUniqueInclude │ │ │ │ │ ├── index.js │ │ │ │ │ ├── src │ │ │ │ │ │ └── foo.ts │ │ │ │ │ ├── src2 │ │ │ │ │ │ └── foo.ts │ │ │ │ │ └── tsconfig.json │ │ │ │ ├── options │ │ │ │ ├── rootDir │ │ │ │ │ ├── index.js │ │ │ │ │ ├── src │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── tsconfig.json │ │ │ │ ├── rootDirIsDot │ │ │ │ │ ├── foo.ts │ │ │ │ │ ├── index.js │ │ │ │ │ └── tsconfig.json │ │ │ │ ├── simpleOutDir │ │ │ │ │ ├── index.js │ │ │ │ │ ├── src │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── tsconfig.json │ │ │ │ ├── slashAndExtension │ │ │ │ │ ├── index.js │ │ │ │ │ ├── package.json │ │ │ │ │ ├── src │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── tsconfig.json │ │ │ │ ├── tests.expected │ │ │ │ └── tests.ql │ │ │ ├── ImportOwnPackage │ │ │ │ ├── TypeNames.expected │ │ │ │ ├── TypeNames.ql │ │ │ │ ├── bar │ │ │ │ │ └── client.ts │ │ │ │ ├── foo │ │ │ │ │ ├── index.ts │ │ │ │ │ └── package.json │ │ │ │ └── tsconfig.json │ │ │ ├── InfiniteTypes │ │ │ │ ├── recursiveMappedType.ts │ │ │ │ ├── test.expected │ │ │ │ ├── test.ql │ │ │ │ └── tsconfig.json │ │ │ ├── LexicalTypes │ │ │ │ ├── TypeReferences.expected │ │ │ │ ├── TypeReferences.ql │ │ │ │ ├── bar.ts │ │ │ │ ├── dummy.ts │ │ │ │ ├── foo.ts │ │ │ │ └── tsconfig.json │ │ │ ├── LiteralTypes │ │ │ │ ├── FloatLiteralTypes.expected │ │ │ │ ├── FloatLiteralTypes.ql │ │ │ │ ├── IntLiteralTypes.expected │ │ │ │ ├── IntLiteralTypes.ql │ │ │ │ ├── LiteralTypes.expected │ │ │ │ ├── LiteralTypes.ql │ │ │ │ ├── tsconfig.json │ │ │ │ └── tst.ts │ │ │ ├── LocalTypeResolution │ │ │ │ ├── exports.ts │ │ │ │ ├── lib.ts │ │ │ │ ├── namespaceDecls.ts │ │ │ │ ├── tests.expected │ │ │ │ ├── tests.ql │ │ │ │ ├── tst.ts │ │ │ │ └── typedecls.ts │ │ │ ├── Modifiers │ │ │ │ ├── options │ │ │ │ ├── tests.expected │ │ │ │ ├── tests.ql │ │ │ │ └── tst.ts │ │ │ ├── Namespaces │ │ │ │ ├── CheckBindings.expected │ │ │ │ ├── CheckBindings.ql │ │ │ │ ├── CheckGlobals.expected │ │ │ │ ├── CheckGlobals.ql │ │ │ │ ├── exports.expected │ │ │ │ ├── exports.ql │ │ │ │ └── tst.ts │ │ │ ├── NestedLiteral │ │ │ │ ├── test.expected │ │ │ │ ├── test.ql │ │ │ │ ├── tsconfig.json │ │ │ │ └── tst.ts │ │ │ ├── NonNullAssertion │ │ │ │ ├── NonNullAssertions.expected │ │ │ │ ├── NonNullAssertions.ql │ │ │ │ └── tst.ts │ │ │ ├── Nullability │ │ │ │ ├── Types.expected │ │ │ │ ├── Types.ql │ │ │ │ ├── tsconfig.json │ │ │ │ └── tst.ts │ │ │ ├── OptionalParameters │ │ │ │ ├── OptionalParams.expected │ │ │ │ ├── OptionalParams.ql │ │ │ │ ├── tst.ts │ │ │ │ └── withDefault.ts │ │ │ ├── Overloading │ │ │ │ ├── OverloadSignatures.expected │ │ │ │ ├── OverloadSignatures.ql │ │ │ │ └── tst.ts │ │ │ ├── PathMapping │ │ │ │ ├── Imports.expected │ │ │ │ ├── Imports.ql │ │ │ │ ├── src │ │ │ │ │ └── lib │ │ │ │ │ │ └── foo.ts │ │ │ │ ├── test │ │ │ │ │ └── test_foo.ts │ │ │ │ └── tsconfig.json │ │ │ ├── PrivateFields │ │ │ │ ├── test.expected │ │ │ │ ├── test.ql │ │ │ │ └── tst.ts │ │ │ ├── Project │ │ │ │ ├── Files.expected │ │ │ │ ├── Files.ql │ │ │ │ ├── bar.ts │ │ │ │ ├── foo.ts │ │ │ │ └── tsconfig.json │ │ │ ├── PromiseType │ │ │ │ ├── DefinitelyTyped-LICENSE │ │ │ │ ├── PromiseType.expected │ │ │ │ ├── PromiseType.ql │ │ │ │ ├── QDeferred.expected │ │ │ │ ├── QDeferred.ql │ │ │ │ ├── es6-promise-LICENSE │ │ │ │ ├── es6-promise.d.ts │ │ │ │ ├── jquery.d.ts │ │ │ │ ├── node_modules │ │ │ │ │ └── @types │ │ │ │ │ │ └── q │ │ │ │ │ │ └── index.d.ts │ │ │ │ ├── promise-LICENSE │ │ │ │ ├── promise.d.ts │ │ │ │ ├── tsconfig.json │ │ │ │ └── tst.ts │ │ │ ├── QualifiedNameResolution │ │ │ │ ├── NamespaceQualifiedNames.expected │ │ │ │ ├── Namespaces.expected │ │ │ │ ├── Namespaces.ql │ │ │ │ ├── ResolveNamespace.expected │ │ │ │ ├── ResolveNamespace.ql │ │ │ │ ├── ResolveTypeName.expected │ │ │ │ ├── ResolveTypeName.ql │ │ │ │ ├── ambient.ts │ │ │ │ ├── dummy.ts │ │ │ │ ├── enums.ts │ │ │ │ ├── export-class-client-renamed.ts │ │ │ │ ├── export-class-client.ts │ │ │ │ ├── export-class.ts │ │ │ │ ├── export-default-type-client.ts │ │ │ │ ├── export-default-type.ts │ │ │ │ ├── export-qualified-client.ts │ │ │ │ ├── export-qualified.ts │ │ │ │ ├── export-specifiers-client.ts │ │ │ │ ├── export-specifiers.ts │ │ │ │ ├── global.ts │ │ │ │ ├── import-in-namespace.ts │ │ │ │ ├── namespaces-client.ts │ │ │ │ ├── namespaces.ts │ │ │ │ ├── otherlib.ts │ │ │ │ ├── reexport-all-client.ts │ │ │ │ ├── reexport-all.ts │ │ │ │ ├── reexport-named-client.ts │ │ │ │ ├── reexport-named.ts │ │ │ │ └── tsconfig.json │ │ │ ├── RegressionTests │ │ │ │ ├── AllowJs │ │ │ │ │ ├── main.ts │ │ │ │ │ ├── test.expected │ │ │ │ │ ├── test.ql │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── tst.js │ │ │ │ ├── ArrowReturn │ │ │ │ │ ├── options │ │ │ │ │ ├── test.expected │ │ │ │ │ ├── test.ql │ │ │ │ │ └── tst.ts │ │ │ │ ├── DefaultExports │ │ │ │ │ ├── exportClass.ts │ │ │ │ │ ├── exportFunction.ts │ │ │ │ │ ├── test.expected │ │ │ │ │ └── test.ql │ │ │ │ ├── EmptyName │ │ │ │ │ ├── test.expected │ │ │ │ │ ├── test.ql │ │ │ │ │ ├── test.ts │ │ │ │ │ └── tsconfig.json │ │ │ │ ├── ExportEqualsExpr │ │ │ │ │ ├── extern.d.ts │ │ │ │ │ ├── test.expected │ │ │ │ │ ├── test.ql │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── tst.ts │ │ │ │ ├── ExportedClassExpr │ │ │ │ │ └── exportFunction.ts │ │ │ │ ├── GlobalThis │ │ │ │ │ ├── test.expected │ │ │ │ │ ├── test.ql │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── tst.ts │ │ │ │ ├── ImportSelf │ │ │ │ │ ├── bar.ts │ │ │ │ │ ├── node_modules │ │ │ │ │ │ └── @blah │ │ │ │ │ │ │ └── foo │ │ │ │ │ │ │ └── index.d.ts │ │ │ │ │ ├── test.expected │ │ │ │ │ ├── test.ql │ │ │ │ │ └── tsconfig.json │ │ │ │ ├── MissingTypeRoot │ │ │ │ │ ├── test.expected │ │ │ │ │ ├── test.ql │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── tst.ts │ │ │ │ ├── NegativeNumberType │ │ │ │ │ ├── test.expected │ │ │ │ │ ├── test.ql │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── tst.ts │ │ │ │ ├── PartialFunctionArgs │ │ │ │ │ ├── Test.expected │ │ │ │ │ ├── Test.ql │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── tst.ts │ │ │ │ ├── RecursiveTypeAlias │ │ │ │ │ ├── Test.expected │ │ │ │ │ ├── Test.ql │ │ │ │ │ ├── test.ts │ │ │ │ │ └── tsconfig.json │ │ │ │ ├── SemicolonInName │ │ │ │ │ ├── test.expected │ │ │ │ │ ├── test.ql │ │ │ │ │ ├── test.ts │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── tst.ts │ │ │ │ ├── TraceResolution │ │ │ │ │ ├── node_modules │ │ │ │ │ │ └── @types │ │ │ │ │ │ │ └── foo │ │ │ │ │ │ │ └── index.d.ts │ │ │ │ │ ├── test.expected │ │ │ │ │ ├── test.ql │ │ │ │ │ ├── test.ts │ │ │ │ │ └── tsconfig.json │ │ │ │ └── TypeRootFile │ │ │ │ │ ├── test.expected │ │ │ │ │ ├── test.ql │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ ├── tst.ts │ │ │ │ │ └── typeroot.d.ts │ │ │ ├── SyntaxErrors │ │ │ │ ├── SyntaxErrors.expected │ │ │ │ ├── SyntaxErrors.ql │ │ │ │ ├── jsdocTypes.ts │ │ │ │ └── options │ │ │ ├── TemplateLiteralTypes │ │ │ │ ├── templateLiteralTypes.ts │ │ │ │ ├── test.expected │ │ │ │ └── test.ql │ │ │ ├── Tokens │ │ │ │ ├── PrettyPrintTokens.expected │ │ │ │ ├── PrettyPrintTokens.ql │ │ │ │ ├── greaterThanTS.ts │ │ │ │ ├── mixed.ts │ │ │ │ ├── regexpTS.ts │ │ │ │ ├── templateLiteralsJS.js │ │ │ │ └── templateLiteralsTS.ts │ │ │ ├── TypeAliases │ │ │ │ ├── TypeAliases.expected │ │ │ │ ├── TypeAliases.ql │ │ │ │ ├── tsconfig.json │ │ │ │ └── tst.ts │ │ │ ├── TypeAnnotations │ │ │ │ ├── ArrayTypeExpr.qll │ │ │ │ ├── ChildIndex.qll │ │ │ │ ├── Containers.qll │ │ │ │ ├── FieldTypes.qll │ │ │ │ ├── FunctionTypeParameters.qll │ │ │ │ ├── FunctionTypeReturns.qll │ │ │ │ ├── GenericTypeExpr.qll │ │ │ │ ├── ImportTypeExpr.qll │ │ │ │ ├── IndexedAccessTypeExpr.qll │ │ │ │ ├── InterfaceTypeExpr.qll │ │ │ │ ├── IntersectionTypeExpr.qll │ │ │ │ ├── KeyofTypeExpr.qll │ │ │ │ ├── MappedTypeExpr.qll │ │ │ │ ├── OptionalTypeExpr.qll │ │ │ │ ├── Parameters.qll │ │ │ │ ├── ParenthesizedTypeExpr.qll │ │ │ │ ├── PredicateTypeExpr.qll │ │ │ │ ├── QualifiedTypeAccess.qll │ │ │ │ ├── RestTypeExpr.qll │ │ │ │ ├── ReturnTypes.qll │ │ │ │ ├── TemplateLiterals.qll │ │ │ │ ├── ThisParameterTypes.qll │ │ │ │ ├── TupleTypeExpr.qll │ │ │ │ ├── TypeAccessHelpers.qll │ │ │ │ ├── TypeArguments.qll │ │ │ │ ├── TypeAssertions.qll │ │ │ │ ├── TypeofTypeExpr.qll │ │ │ │ ├── UnionTypeExpr.qll │ │ │ │ ├── UnknownTypeExpr.qll │ │ │ │ ├── VariableTypes.qll │ │ │ │ ├── printAst.expected │ │ │ │ ├── printAst.ql │ │ │ │ ├── tests.expected │ │ │ │ ├── tests.ql │ │ │ │ └── tst.ts │ │ │ ├── TypeOnlyImportExport │ │ │ │ ├── exportClass.ts │ │ │ │ ├── exportFunction.ts │ │ │ │ ├── importFunction.ts │ │ │ │ ├── importRexportedClass.ts │ │ │ │ ├── importType.ts │ │ │ │ ├── namedReexport.ts │ │ │ │ ├── test.expected │ │ │ │ ├── test.ql │ │ │ │ └── tst.ts │ │ │ ├── TypeParameters │ │ │ │ ├── inferTypes.ts │ │ │ │ ├── tests.expected │ │ │ │ ├── tests.ql │ │ │ │ └── tst.ts │ │ │ ├── TypeVariableTypes │ │ │ │ ├── tests.expected │ │ │ │ ├── tests.ql │ │ │ │ ├── tsconfig.json │ │ │ │ └── tst.ts │ │ │ └── Types │ │ │ │ ├── boolean-type.ts │ │ │ │ ├── dummy.ts │ │ │ │ ├── middle-rest.ts │ │ │ │ ├── printAst.expected │ │ │ │ ├── printAst.ql │ │ │ │ ├── tests.expected │ │ │ │ ├── tests.ql │ │ │ │ ├── tsconfig.json │ │ │ │ ├── tst.ts │ │ │ │ ├── type_alias.ts │ │ │ │ ├── type_definition_objects.ts │ │ │ │ └── type_definitions.ts │ │ ├── TypeTracking │ │ │ ├── ClassStyle.expected │ │ │ ├── ClassStyle.ql │ │ │ ├── CustomStep.qll │ │ │ ├── PredicateStyle.expected │ │ │ ├── PredicateStyle.ql │ │ │ ├── TypeTracking.expected │ │ │ ├── TypeTracking.ql │ │ │ ├── class.js │ │ │ ├── client.js │ │ │ ├── client2.js │ │ │ ├── deprecated.js │ │ │ ├── destructuring-export-client.js │ │ │ ├── destructuring-export.js │ │ │ ├── reexport │ │ │ │ ├── a.js │ │ │ │ ├── b.js │ │ │ │ └── test.js │ │ │ ├── tst.js │ │ │ └── tst_conflict.js │ │ ├── Util │ │ │ ├── tests.expected │ │ │ ├── tests.ql │ │ │ └── tst.js │ │ ├── XML │ │ │ ├── tests.expected │ │ │ ├── tests.ql │ │ │ ├── tst.js │ │ │ └── tst.xml │ │ ├── YAML │ │ │ ├── err.yaml │ │ │ ├── external.yml │ │ │ ├── merge.yaml │ │ │ ├── options │ │ │ ├── printAst.expected │ │ │ ├── printAst.ql │ │ │ ├── tests.expected │ │ │ ├── tests.ql │ │ │ └── tst.yml │ │ ├── dependencies │ │ │ ├── Dependencies.expected │ │ │ ├── Dependencies.ql │ │ │ ├── DependencyCustomizations.qll │ │ │ ├── DependencyUses.expected │ │ │ ├── DependencyUses.ql │ │ │ ├── README │ │ │ └── src │ │ │ │ ├── closure-test.js │ │ │ │ ├── fake-jquery.js │ │ │ │ ├── fake-lodash.js │ │ │ │ ├── fake-lodash2.js │ │ │ │ ├── jquery-lodash.bundle.js │ │ │ │ ├── node_modules │ │ │ │ ├── bundled-package │ │ │ │ │ ├── index.js │ │ │ │ │ └── package.json │ │ │ │ └── private-package │ │ │ │ │ ├── index.js │ │ │ │ │ └── package.json │ │ │ │ ├── package.json │ │ │ │ ├── tst.html │ │ │ │ └── tst.js │ │ ├── frameworks │ │ │ ├── Angular2 │ │ │ │ ├── TestPipe.ts │ │ │ │ ├── inline.component.ts │ │ │ │ ├── mid.component.html │ │ │ │ ├── mid.component.ts │ │ │ │ ├── sink.component.ts │ │ │ │ ├── source.component.html │ │ │ │ ├── source.component.ts │ │ │ │ ├── test.expected │ │ │ │ └── test.ql │ │ │ ├── AngularJS │ │ │ │ ├── LICENSE │ │ │ │ ├── controllers │ │ │ │ │ ├── Controller.expected │ │ │ │ │ ├── Controller.ql │ │ │ │ │ ├── template1.html │ │ │ │ │ ├── template3.html │ │ │ │ │ ├── template4.html │ │ │ │ │ ├── tst.html │ │ │ │ │ └── tst.js │ │ │ │ ├── dependencies │ │ │ │ │ ├── DependencyKinds.expected │ │ │ │ │ ├── DependencyKinds.ql │ │ │ │ │ └── dependency-kinds.js │ │ │ │ ├── dependency-dataflow │ │ │ │ │ ├── ScopeMethodCalls.expected │ │ │ │ │ ├── ScopeMethodCalls.ql │ │ │ │ │ ├── ScopePropertyAccess.expected │ │ │ │ │ ├── ScopePropertyAccess.ql │ │ │ │ │ └── test.js │ │ │ │ ├── dependency-resolution │ │ │ │ │ ├── DependencyResolution.expected │ │ │ │ │ ├── DependencyResolution.ql │ │ │ │ │ ├── DependencyResolution_full.expected │ │ │ │ │ ├── DependencyResolution_full.ql │ │ │ │ │ └── dependency-resolution.js │ │ │ │ ├── directives │ │ │ │ │ ├── Directive.expected │ │ │ │ │ ├── Directive.ql │ │ │ │ │ ├── DirectiveMatching.expected │ │ │ │ │ ├── DirectiveMatching.ql │ │ │ │ │ ├── DirectiveTargets.expected │ │ │ │ │ ├── DirectiveTargets.ql │ │ │ │ │ ├── tst.html │ │ │ │ │ └── tst.js │ │ │ │ ├── expressions │ │ │ │ │ ├── lexing │ │ │ │ │ │ ├── Predecessors.expected │ │ │ │ │ │ ├── Predecessors.ql │ │ │ │ │ │ ├── Successors.expected │ │ │ │ │ │ ├── Successors.ql │ │ │ │ │ │ ├── Tokens.expected │ │ │ │ │ │ ├── Tokens.ql │ │ │ │ │ │ └── tokens.html │ │ │ │ │ ├── parsing │ │ │ │ │ │ ├── AstNodes.expected │ │ │ │ │ │ ├── AstNodes.ql │ │ │ │ │ │ ├── NgCallExpr_getArgument.expected │ │ │ │ │ │ ├── NgCallExpr_getArgument.ql │ │ │ │ │ │ ├── NgSingleFilter_getArgument.expected │ │ │ │ │ │ ├── NgSingleFilter_getArgument.ql │ │ │ │ │ │ └── ast-nodes.html │ │ │ │ │ ├── scopes │ │ │ │ │ │ ├── getScope.expected │ │ │ │ │ │ ├── getScope.ql │ │ │ │ │ │ ├── options │ │ │ │ │ │ ├── tst.html │ │ │ │ │ │ ├── tst.js │ │ │ │ │ │ └── tst2.html │ │ │ │ │ └── sources │ │ │ │ │ │ ├── HtmlNgAttributes.html │ │ │ │ │ │ ├── HtmlText.html │ │ │ │ │ │ ├── Sources.expected │ │ │ │ │ │ ├── Sources.ql │ │ │ │ │ │ ├── html-attributes.html │ │ │ │ │ │ ├── options │ │ │ │ │ │ └── template-fields.js │ │ │ │ ├── filters │ │ │ │ │ ├── Filters.expected │ │ │ │ │ ├── Filters.ql │ │ │ │ │ └── filters.js │ │ │ │ ├── jqlite │ │ │ │ │ ├── JQLiteObject.expected │ │ │ │ │ ├── JQLiteObject.ql │ │ │ │ │ └── tst.js │ │ │ │ ├── linkFunctions │ │ │ │ │ ├── LinkFunctions.expected │ │ │ │ │ ├── LinkFunctions.ql │ │ │ │ │ ├── tst.html │ │ │ │ │ └── tst.js │ │ │ │ ├── modules │ │ │ │ │ ├── AngularModule.expected │ │ │ │ │ ├── AngularModule.ql │ │ │ │ │ ├── ModuleRef.expected │ │ │ │ │ ├── ModuleRef.ql │ │ │ │ │ ├── module-refs.js │ │ │ │ │ ├── tst.html │ │ │ │ │ └── tst.js │ │ │ │ ├── routes │ │ │ │ │ ├── RouteSetup.expected │ │ │ │ │ ├── RouteSetup.ql │ │ │ │ │ └── tst.js │ │ │ │ ├── scopes │ │ │ │ │ ├── DirectiveScope.expected │ │ │ │ │ ├── DirectiveScope.ql │ │ │ │ │ ├── ElementScope.expected │ │ │ │ │ ├── ElementScope.ql │ │ │ │ │ ├── HtmlFileScope.expected │ │ │ │ │ ├── HtmlFileScope.ql │ │ │ │ │ ├── IsolateScope.expected │ │ │ │ │ ├── IsolateScope.ql │ │ │ │ │ ├── ScopeAccess.expected │ │ │ │ │ ├── ScopeAccess.ql │ │ │ │ │ ├── dev-guide-1.html │ │ │ │ │ ├── dev-guide-1.js │ │ │ │ │ ├── dev-guide-2.html │ │ │ │ │ ├── dev-guide-2.js │ │ │ │ │ ├── dev-guide-3.html │ │ │ │ │ ├── dev-guide-3.js │ │ │ │ │ ├── dev-guide-4-template.html │ │ │ │ │ ├── dev-guide-4.html │ │ │ │ │ ├── dev-guide-4.js │ │ │ │ │ ├── dev-guide-5-template.html │ │ │ │ │ ├── dev-guide-5.html │ │ │ │ │ ├── dev-guide-5.js │ │ │ │ │ ├── dev-guide-6-template.html │ │ │ │ │ ├── dev-guide-6.html │ │ │ │ │ ├── dev-guide-6.js │ │ │ │ │ ├── scope-access.html │ │ │ │ │ ├── scope-access.js │ │ │ │ │ └── tst.js │ │ │ │ └── security │ │ │ │ │ └── owasp-injection-examples │ │ │ │ │ ├── binding.html │ │ │ │ │ ├── binding.js │ │ │ │ │ ├── interpolate.html │ │ │ │ │ ├── interpolate.js │ │ │ │ │ ├── translate.html │ │ │ │ │ └── translate.js │ │ │ ├── AsyncPackage │ │ │ │ ├── AsyncTaintTracking.expected │ │ │ │ ├── AsyncTaintTracking.ql │ │ │ │ ├── each.js │ │ │ │ ├── map.js │ │ │ │ ├── sortBy.js │ │ │ │ └── waterfall.js │ │ │ ├── Base64 │ │ │ │ ├── Base64.js │ │ │ │ ├── Buffer.js │ │ │ │ ├── Decode.qll │ │ │ │ ├── Encode.qll │ │ │ │ ├── base-64.js │ │ │ │ ├── base64-js.js │ │ │ │ ├── dom.js │ │ │ │ ├── js-base64.js │ │ │ │ ├── js-base64b.js │ │ │ │ ├── tests.expected │ │ │ │ └── tests.ql │ │ │ ├── Cheerio │ │ │ │ ├── Cheerio.expected │ │ │ │ ├── Cheerio.ql │ │ │ │ └── tst.js │ │ │ ├── ClientRequests │ │ │ │ ├── ClientRequests.expected │ │ │ │ ├── ClientRequests.ql │ │ │ │ ├── apollo.js │ │ │ │ ├── puppeteer.ts │ │ │ │ ├── tsconfig.json │ │ │ │ └── tst.js │ │ │ ├── Collections │ │ │ │ ├── test.expected │ │ │ │ ├── test.ql │ │ │ │ └── tst.js │ │ │ ├── ComposedFunctions │ │ │ │ ├── compose.expected │ │ │ │ ├── compose.ql │ │ │ │ └── tst.js │ │ │ ├── Concepts │ │ │ │ ├── file-access.js │ │ │ │ ├── persistence.js │ │ │ │ ├── tests.expected │ │ │ │ ├── tests.ql │ │ │ │ └── tst-file-names.js │ │ │ ├── CookieLibraries │ │ │ │ ├── CookieReadAccess.expected │ │ │ │ ├── CookieReadAccess.ql │ │ │ │ ├── CookieReadAccess_getAWrite.expected │ │ │ │ ├── CookieReadAccess_getAWrite.ql │ │ │ │ ├── CookieWriteAccess.expected │ │ │ │ ├── CookieWriteAccess.ql │ │ │ │ └── tst.js │ │ │ ├── Electron │ │ │ │ ├── electron.js │ │ │ │ ├── electronTs.d.ts │ │ │ │ ├── electronTs.ts │ │ │ │ ├── tests.expected │ │ │ │ ├── tests.ql │ │ │ │ └── tsconfig.json │ │ │ ├── Emscripten │ │ │ │ ├── EmscriptenGeneratedToplevel.expected │ │ │ │ ├── EmscriptenGeneratedToplevel.ql │ │ │ │ ├── EmscriptenMarkerComment.expected │ │ │ │ ├── EmscriptenMarkerComment.ql │ │ │ │ ├── tst.js │ │ │ │ └── tts.js │ │ │ ├── EventEmitter │ │ │ │ ├── customEmitter.js │ │ │ │ ├── test.expected │ │ │ │ ├── test.ql │ │ │ │ ├── tst.js │ │ │ │ └── tst2.js │ │ │ ├── Express │ │ │ │ ├── CookieMiddlewareInstance.qll │ │ │ │ ├── Credentials.qll │ │ │ │ ├── ExpressSession.qll │ │ │ │ ├── HeaderAccess.qll │ │ │ │ ├── HeaderDefinition.qll │ │ │ │ ├── HeaderDefinition_defines.qll │ │ │ │ ├── HeaderDefinition_getAHeaderName.qll │ │ │ │ ├── HeaderDefinition_getNameExpr.qll │ │ │ │ ├── RedirectInvocation.qll │ │ │ │ ├── RequestBodyAccess.qll │ │ │ │ ├── RequestExpr.qll │ │ │ │ ├── RequestInputAccess.qll │ │ │ │ ├── ResponseBody.qll │ │ │ │ ├── ResponseExpr.qll │ │ │ │ ├── ResponseSendArgument.qll │ │ │ │ ├── RouteExpr.qll │ │ │ │ ├── RouteHandler.qll │ │ │ │ ├── RouteHandlerContainer.expected │ │ │ │ ├── RouteHandlerContainer.qll │ │ │ │ ├── RouteHandlerExpr.qll │ │ │ │ ├── RouteHandlerExpr_getAMatchingAncestor.qll │ │ │ │ ├── RouteHandlerExpr_getAsSubRouter.qll │ │ │ │ ├── RouteHandlerExpr_getBody.qll │ │ │ │ ├── RouteHandlerExpr_getNextMiddleware.qll │ │ │ │ ├── RouteHandlerExpr_getPreviousMiddleware.qll │ │ │ │ ├── RouteHandler_getARequestBodyAccess.qll │ │ │ │ ├── RouteHandler_getARequestExpr.qll │ │ │ │ ├── RouteHandler_getAResponseExpr.qll │ │ │ │ ├── RouteHandler_getAResponseHeader.qll │ │ │ │ ├── RouteSetup.qll │ │ │ │ ├── RouteSetup_getARouteHandler.qll │ │ │ │ ├── RouteSetup_getARouteHandlerExpr.qll │ │ │ │ ├── RouteSetup_getLastRouteHandlerExpr.qll │ │ │ │ ├── RouteSetup_getRequestMethod.qll │ │ │ │ ├── RouteSetup_getRouteHandlerExpr.qll │ │ │ │ ├── RouteSetup_getRouter.qll │ │ │ │ ├── RouteSetup_getServer.qll │ │ │ │ ├── RouteSetup_handlesAllRequestMethods.qll │ │ │ │ ├── RouteSetup_handlesSameRequestMethodAs.qll │ │ │ │ ├── RouterDefinition_RouterDefinition.qll │ │ │ │ ├── RouterDefinition_getARouteHandler.qll │ │ │ │ ├── RouterDefinition_getASubRouter.qll │ │ │ │ ├── RouterDefinition_getMiddlewareStack.qll │ │ │ │ ├── RouterDefinition_getMiddlewareStackAt.qll │ │ │ │ ├── SetCookie.qll │ │ │ │ ├── StandardRouteHandler.qll │ │ │ │ ├── appCreation.qll │ │ │ │ ├── es6-imported-router.js │ │ │ │ ├── isRequest.qll │ │ │ │ ├── isResponse.qll │ │ │ │ ├── isRouterCreation.qll │ │ │ │ ├── options │ │ │ │ ├── src │ │ │ │ │ ├── advanced-routehandler-registration.js │ │ │ │ │ ├── auth.js │ │ │ │ │ ├── controllers │ │ │ │ │ │ ├── handler-in-bulk-require.js │ │ │ │ │ │ ├── handler-in-dynamic-require.js │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── cookie-parser.js │ │ │ │ │ ├── cookie-session.js │ │ │ │ │ ├── csurf-example.js │ │ │ │ │ ├── exportedHandler.js │ │ │ │ │ ├── express-session.js │ │ │ │ │ ├── express.js │ │ │ │ │ ├── express2.js │ │ │ │ │ ├── express3.js │ │ │ │ │ ├── express4.js │ │ │ │ │ ├── inheritedFromNode.js │ │ │ │ │ ├── params.js │ │ │ │ │ ├── passport.js │ │ │ │ │ ├── responseExprs.js │ │ │ │ │ ├── route-collection.js │ │ │ │ │ ├── route.js │ │ │ │ │ ├── routesetups.js │ │ │ │ │ └── subrouter.js │ │ │ │ ├── tests.expected │ │ │ │ ├── tests.ql │ │ │ │ ├── tsconfig.json │ │ │ │ └── typed_src │ │ │ │ │ ├── shim.d.ts │ │ │ │ │ └── tst.ts │ │ │ ├── Firebase │ │ │ │ ├── node_modules │ │ │ │ │ └── firebase │ │ │ │ │ │ └── index.d.ts │ │ │ │ ├── src │ │ │ │ │ ├── import_assign.ts │ │ │ │ │ ├── import_named.ts │ │ │ │ │ └── import_star.ts │ │ │ │ ├── tests.expected │ │ │ │ ├── tests.ql │ │ │ │ ├── tsconfig.json │ │ │ │ └── tst.js │ │ │ ├── GWT │ │ │ │ ├── GWTGeneratedTopLevel.expected │ │ │ │ ├── GWTGeneratedTopLevel.ql │ │ │ │ ├── GWTHeader.expected │ │ │ │ ├── GWTHeader.ql │ │ │ │ └── tst.html │ │ │ ├── HTTP-heuristics │ │ │ │ ├── AdditionalRouteHandlers.expected │ │ │ │ ├── AdditionalRouteHandlers.ql │ │ │ │ ├── UnpromotedRouteHandlerCandidate.expected │ │ │ │ ├── UnpromotedRouteHandlerCandidate.qlref │ │ │ │ ├── UnpromotedRouteSetupCandidate.expected │ │ │ │ ├── UnpromotedRouteSetupCandidate.qlref │ │ │ │ ├── src │ │ │ │ │ ├── RouterExample.js │ │ │ │ │ ├── app-in-property.js │ │ │ │ │ ├── bound-handler.js │ │ │ │ │ ├── connect.js │ │ │ │ │ ├── constructed-handler.js │ │ │ │ │ ├── es6-imported-middleware-attacher.js │ │ │ │ │ ├── exported-getter.js │ │ │ │ │ ├── exported-handler.js │ │ │ │ │ ├── exported-middleware-attacher-2.js │ │ │ │ │ ├── exported-middleware-attacher.js │ │ │ │ │ ├── handler-in-property.js │ │ │ │ │ ├── hapi.js │ │ │ │ │ ├── imported-getter.js │ │ │ │ │ ├── imported-handler.js │ │ │ │ │ ├── imported-middleware-attacher.js │ │ │ │ │ ├── iterated-handlers.js │ │ │ │ │ ├── middleware-attacher-getter.js │ │ │ │ │ ├── middleware-attacher.js │ │ │ │ │ ├── nodejs.js │ │ │ │ │ ├── real-world.js │ │ │ │ │ ├── returned-handler.js │ │ │ │ │ ├── route-objects.js │ │ │ │ │ └── tst.js │ │ │ │ ├── tests.expected │ │ │ │ └── tests.ql │ │ │ ├── HTTP │ │ │ │ ├── RemoteRequestInput.expected │ │ │ │ ├── RemoteRequestInput.ql │ │ │ │ ├── ResponseBody.expected │ │ │ │ ├── ResponseBody.ql │ │ │ │ ├── connect.js │ │ │ │ ├── express.js │ │ │ │ ├── hapi.js │ │ │ │ ├── koa.js │ │ │ │ ├── node.js │ │ │ │ └── restify.js │ │ │ ├── Immutable │ │ │ │ ├── immutable.js │ │ │ │ ├── tests.expected │ │ │ │ └── tests.ql │ │ │ ├── LazyCache │ │ │ │ ├── LazyCache.expected │ │ │ │ ├── LazyCache.ql │ │ │ │ └── tst.js │ │ │ ├── LodashUnderscore │ │ │ │ ├── LodashUnderscoreCalls.expected │ │ │ │ ├── LodashUnderscoreCalls.ql │ │ │ │ ├── global.js │ │ │ │ └── tst.js │ │ │ ├── Logging │ │ │ │ ├── LoggerCall.expected │ │ │ │ ├── LoggerCall.ql │ │ │ │ └── tst.js │ │ │ ├── Micro │ │ │ │ ├── TestMicro.expected │ │ │ │ ├── TestMicro.ql │ │ │ │ └── tst.js │ │ │ ├── Next │ │ │ │ ├── package.json │ │ │ │ ├── pages │ │ │ │ │ ├── [my-fallback-id].jsx │ │ │ │ │ └── secondpage.jsx │ │ │ │ ├── tests.expected │ │ │ │ └── tests.ql │ │ │ ├── NodeJSLib │ │ │ │ ├── ClientRequest_getADataNode.qll │ │ │ │ ├── Credentials.qll │ │ │ │ ├── HeaderAccess.qll │ │ │ │ ├── HeaderDefinition.qll │ │ │ │ ├── HeaderDefinition_defines.qll │ │ │ │ ├── HeaderDefinition_getAHeaderName.qll │ │ │ │ ├── HeaderDefinition_getNameExpr.qll │ │ │ │ ├── RemoteFlowSources.qll │ │ │ │ ├── RequestExpr.qll │ │ │ │ ├── RequestInputAccess.qll │ │ │ │ ├── ResponseExpr.qll │ │ │ │ ├── ResponseSendArgument.qll │ │ │ │ ├── RouteHandler.qll │ │ │ │ ├── RouteHandler_getARequestExpr.qll │ │ │ │ ├── RouteHandler_getAResponseExpr.qll │ │ │ │ ├── RouteHandler_getAResponseHeader.qll │ │ │ │ ├── RouteSetup_getARouteHandler.qll │ │ │ │ ├── RouteSetup_getServer.qll │ │ │ │ ├── ServerDefinition.qll │ │ │ │ ├── ServerDefinition_getARouteHandler.qll │ │ │ │ ├── SystemCommandExecution.qll │ │ │ │ ├── SystemCommandExecution_getAnArgumentForCommand.qll │ │ │ │ ├── TestClientRequest.qll │ │ │ │ ├── createServer.js │ │ │ │ ├── es6-imported-exec.js │ │ │ │ ├── exec.js │ │ │ │ ├── http.js │ │ │ │ ├── isCreateServer.qll │ │ │ │ ├── src │ │ │ │ │ ├── http.js │ │ │ │ │ ├── https.js │ │ │ │ │ ├── indirect.js │ │ │ │ │ └── indirect2.js │ │ │ │ ├── tests.expected │ │ │ │ └── tests.ql │ │ │ ├── PropertyProjection │ │ │ │ ├── PropertyInjectionTaint.expected │ │ │ │ ├── PropertyInjectionTaint.ql │ │ │ │ ├── PropertyProjection.expected │ │ │ │ ├── PropertyProjection.ql │ │ │ │ └── tst.js │ │ │ ├── ReactJS │ │ │ │ ├── ReactComponent.qll │ │ │ │ ├── ReactComponent_getACandidatePropsValue.qll │ │ │ │ ├── ReactComponent_getACandidateStateSource.qll │ │ │ │ ├── ReactComponent_getADirectPropsSource.qll │ │ │ │ ├── ReactComponent_getAPreviousStateSource.qll │ │ │ │ ├── ReactComponent_getAPropRead.qll │ │ │ │ ├── ReactComponent_getInstanceMethod.qll │ │ │ │ ├── ReactComponent_ref.qll │ │ │ │ ├── ReactName.qll │ │ │ │ ├── es5.js │ │ │ │ ├── es6.js │ │ │ │ ├── exportedComponent.jsx │ │ │ │ ├── getADirectStateAccess.qll │ │ │ │ ├── globalReactRefs.js │ │ │ │ ├── higherOrderComponent.jsx │ │ │ │ ├── importedComponent.jsx │ │ │ │ ├── importedReactRefs.js │ │ │ │ ├── namedImport.js │ │ │ │ ├── options │ │ │ │ ├── plainfn.js │ │ │ │ ├── preact.js │ │ │ │ ├── probably-a-component.js │ │ │ │ ├── props.js │ │ │ │ ├── rare-lifecycle-methods.js │ │ │ │ ├── react.qll │ │ │ │ ├── requiredReactRefs.js │ │ │ │ ├── statePropertyReads.js │ │ │ │ ├── statePropertyWrites.js │ │ │ │ ├── tests.expected │ │ │ │ ├── tests.ql │ │ │ │ ├── thisAccesses.js │ │ │ │ ├── thisAccesses_importedMappers.js │ │ │ │ └── useHigherOrderComponent.jsx │ │ │ ├── ReactNative │ │ │ │ ├── WebView.expected │ │ │ │ ├── WebView.ql │ │ │ │ └── webview.js │ │ │ ├── SQL │ │ │ │ ├── Credentials.expected │ │ │ │ ├── Credentials.ql │ │ │ │ ├── SqlSanitizer.expected │ │ │ │ ├── SqlSanitizer.ql │ │ │ │ ├── SqlString.expected │ │ │ │ ├── SqlString.ql │ │ │ │ ├── juice-shop-LICENSE │ │ │ │ ├── mssql1.js │ │ │ │ ├── mssql2.js │ │ │ │ ├── mssql3.js │ │ │ │ ├── mysql1.js │ │ │ │ ├── mysql1a.js │ │ │ │ ├── mysql2.js │ │ │ │ ├── mysql2tst.js │ │ │ │ ├── mysql3.js │ │ │ │ ├── mysql4.js │ │ │ │ ├── mysqlImport.js │ │ │ │ ├── mysqljs-License │ │ │ │ ├── node-mysql2-License │ │ │ │ ├── node-postgres-LICENSE │ │ │ │ ├── node-sqlite3-LICENSE │ │ │ │ ├── postgres1.js │ │ │ │ ├── postgres2.js │ │ │ │ ├── postgres3.js │ │ │ │ ├── postgres4.js │ │ │ │ ├── postgres5.js │ │ │ │ ├── postgresImport.js │ │ │ │ ├── sequelize.js │ │ │ │ ├── sequelize2.js │ │ │ │ ├── sequelizeImport.js │ │ │ │ ├── spanner.js │ │ │ │ ├── spanner2.js │ │ │ │ ├── spannerImport.js │ │ │ │ ├── sqlite.js │ │ │ │ ├── sqliteArray.js │ │ │ │ └── sqliteImport.js │ │ │ ├── ServerLess │ │ │ │ ├── test.expected │ │ │ │ ├── test.ql │ │ │ │ ├── tst1 │ │ │ │ │ ├── backend │ │ │ │ │ │ └── src │ │ │ │ │ │ │ └── mylibrary.js │ │ │ │ │ └── template.yml │ │ │ │ ├── tst2 │ │ │ │ │ ├── nodejs │ │ │ │ │ │ └── index.js │ │ │ │ │ └── template.yml │ │ │ │ ├── tst3 │ │ │ │ │ ├── function │ │ │ │ │ │ └── index.js │ │ │ │ │ └── template.yml │ │ │ │ ├── tst4 │ │ │ │ │ ├── app.js │ │ │ │ │ └── template.yml │ │ │ │ └── tst5 │ │ │ │ │ ├── app.js │ │ │ │ │ └── template.yml │ │ │ ├── Shelljs │ │ │ │ ├── ShellJS.expected │ │ │ │ ├── ShellJS.ql │ │ │ │ └── tst.js │ │ │ ├── SocketIO │ │ │ │ ├── AdditionalFlowStep.qll │ │ │ │ ├── ClientReceiveNode.qll │ │ │ │ ├── ClientReceiveNode_getASender.qll │ │ │ │ ├── ClientReceiveNode_getAck.qll │ │ │ │ ├── ClientReceiveNode_getEventName.qll │ │ │ │ ├── ClientReceiveNode_getReceivedItem.qll │ │ │ │ ├── ClientSendNode.qll │ │ │ │ ├── ClientSendNode_getAReceiver.qll │ │ │ │ ├── ClientSendNode_getAck.qll │ │ │ │ ├── ClientSendNode_getEventName.qll │ │ │ │ ├── ClientSendNode_getSentItem.qll │ │ │ │ ├── ClientSocketNode.qll │ │ │ │ ├── NamespaceNode.qll │ │ │ │ ├── NamespaceObject.qll │ │ │ │ ├── ReceiveNode.qll │ │ │ │ ├── ReceiveNode_getASender.qll │ │ │ │ ├── ReceiveNode_getEventName.qll │ │ │ │ ├── ReceiveNode_getReceivedItem.qll │ │ │ │ ├── SendNode.qll │ │ │ │ ├── SendNode_getAReceiver.qll │ │ │ │ ├── SendNode_getAck.qll │ │ │ │ ├── SendNode_getSentItem.qll │ │ │ │ ├── SendNode_getSocket.qll │ │ │ │ ├── ServerNode.qll │ │ │ │ ├── ServerObject.qll │ │ │ │ ├── SocketNode.qll │ │ │ │ ├── client1.js │ │ │ │ ├── client2.js │ │ │ │ ├── client3.js │ │ │ │ ├── client4.js │ │ │ │ ├── handler.js │ │ │ │ ├── package.json │ │ │ │ ├── tests.expected │ │ │ │ ├── tests.ql │ │ │ │ └── tst.js │ │ │ ├── Testing │ │ │ │ ├── customised │ │ │ │ │ ├── Tests.expected │ │ │ │ │ ├── Tests.ql │ │ │ │ │ └── test.js │ │ │ │ └── uncustomised │ │ │ │ │ ├── Tests.expected │ │ │ │ │ ├── Tests.ql │ │ │ │ │ ├── test.js │ │ │ │ │ ├── test2.js │ │ │ │ │ └── xUnit.js │ │ │ ├── UriLibraries │ │ │ │ ├── UriLibraryStep.expected │ │ │ │ ├── UriLibraryStep.ql │ │ │ │ ├── closureUri.js │ │ │ │ ├── path-parse.js │ │ │ │ ├── punycode.js │ │ │ │ ├── query-string.js │ │ │ │ ├── query-string_import.js │ │ │ │ ├── querystring.js │ │ │ │ ├── querystringify.js │ │ │ │ ├── tests.expected │ │ │ │ ├── tests.ql │ │ │ │ ├── uri-js.js │ │ │ │ ├── urijs.js │ │ │ │ ├── url-parse.js │ │ │ │ └── url.js │ │ │ ├── Vue │ │ │ │ ├── compont-with-route.vue │ │ │ │ ├── router.js │ │ │ │ ├── single-component-file-1.vue │ │ │ │ ├── single-file-component-2.vue │ │ │ │ ├── single-file-component-3-script.js │ │ │ │ ├── single-file-component-3.vue │ │ │ │ ├── single-file-component-4.vue │ │ │ │ ├── single-file-component-5.vue │ │ │ │ ├── tests.expected │ │ │ │ ├── tests.ql │ │ │ │ └── tst.js │ │ │ ├── WebSocket │ │ │ │ ├── browser.js │ │ │ │ ├── client.js │ │ │ │ ├── server.js │ │ │ │ ├── sockjs.js │ │ │ │ ├── test.expected │ │ │ │ └── test.ql │ │ │ ├── babel │ │ │ │ └── root-import │ │ │ │ │ ├── Imports.expected │ │ │ │ │ ├── Imports.ql │ │ │ │ │ ├── tst1 │ │ │ │ │ ├── .babelrc.json │ │ │ │ │ ├── a.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── nested │ │ │ │ │ │ └── tst.js │ │ │ │ │ ├── tst2 │ │ │ │ │ ├── index.js │ │ │ │ │ ├── package.json │ │ │ │ │ └── src │ │ │ │ │ │ └── js │ │ │ │ │ │ └── b.js │ │ │ │ │ ├── tst3 │ │ │ │ │ ├── .babelrc.json │ │ │ │ │ ├── index.js │ │ │ │ │ └── src │ │ │ │ │ │ └── b.js │ │ │ │ │ └── tst4 │ │ │ │ │ ├── index.js │ │ │ │ │ ├── package.json │ │ │ │ │ └── src │ │ │ │ │ └── js │ │ │ │ │ └── b.js │ │ │ ├── connect │ │ │ │ ├── Credentials.qll │ │ │ │ ├── HeaderDefinition.qll │ │ │ │ ├── HeaderDefinition_defines.qll │ │ │ │ ├── HeaderDefinition_getAHeaderName.qll │ │ │ │ ├── RequestExpr.qll │ │ │ │ ├── RequestInputAccess.qll │ │ │ │ ├── ResponseExpr.qll │ │ │ │ ├── RouteHandler.qll │ │ │ │ ├── RouteHandler_getARequestExpr.qll │ │ │ │ ├── RouteHandler_getAResponseExpr.qll │ │ │ │ ├── RouteHandler_getAResponseHeader.qll │ │ │ │ ├── RouteSetup.qll │ │ │ │ ├── RouteSetup_getARouteHandler.qll │ │ │ │ ├── RouteSetup_getServer.qll │ │ │ │ ├── ServerDefinition.qll │ │ │ │ ├── src │ │ │ │ │ └── test.js │ │ │ │ ├── tests.expected │ │ │ │ └── tests.ql │ │ │ ├── fastify │ │ │ │ ├── HeaderAccess.qll │ │ │ │ ├── HeaderDefinition.qll │ │ │ │ ├── HeaderDefinition_defines.qll │ │ │ │ ├── HeaderDefinition_getAHeaderName.qll │ │ │ │ ├── RedirectInvocation.qll │ │ │ │ ├── RequestInputAccess.qll │ │ │ │ ├── ResponseSendArgument.qll │ │ │ │ ├── RouteHandler.qll │ │ │ │ ├── RouteHandler_getARequestExpr.qll │ │ │ │ ├── RouteHandler_getAResponseHeader.qll │ │ │ │ ├── RouteSetup.qll │ │ │ │ ├── RouteSetup_getARouteHandler.qll │ │ │ │ ├── RouteSetup_getServer.qll │ │ │ │ ├── ServerDefinition.qll │ │ │ │ ├── src │ │ │ │ │ └── fastify.js │ │ │ │ ├── tests.expected │ │ │ │ └── tests.ql │ │ │ ├── hapi │ │ │ │ ├── HeaderAccess.qll │ │ │ │ ├── HeaderDefinition.qll │ │ │ │ ├── HeaderDefinition_defines.qll │ │ │ │ ├── HeaderDefinition_getAHeaderName.qll │ │ │ │ ├── RequestExpr.qll │ │ │ │ ├── RequestInputAccess.qll │ │ │ │ ├── ResponseExpr.qll │ │ │ │ ├── RouteHandler.qll │ │ │ │ ├── RouteHandler_getARequestExpr.qll │ │ │ │ ├── RouteHandler_getAResponseHeader.qll │ │ │ │ ├── RouteSetup.qll │ │ │ │ ├── RouteSetup_getARouteHandler.qll │ │ │ │ ├── RouteSetup_getServer.qll │ │ │ │ ├── ServerDefinition.qll │ │ │ │ ├── src │ │ │ │ │ └── hapi.js │ │ │ │ ├── tests.expected │ │ │ │ └── tests.ql │ │ │ ├── jQuery │ │ │ │ ├── AttributeDefinitions.expected │ │ │ │ ├── AttributeDefinitions.ql │ │ │ │ ├── JQueryMethodCall.expected │ │ │ │ ├── JQueryMethodCall.ql │ │ │ │ ├── interpretsArgumentAsHtml.expected │ │ │ │ ├── interpretsArgumentAsHtml.ql │ │ │ │ ├── jquery-3.2.js │ │ │ │ ├── jquery.d.ts │ │ │ │ ├── tracking.js │ │ │ │ ├── ts_global_types.ts │ │ │ │ ├── ts_import.ts │ │ │ │ ├── tsconfig.json │ │ │ │ ├── tst.js │ │ │ │ └── tst2.js │ │ │ ├── koa │ │ │ │ ├── AppDefinition.qll │ │ │ │ ├── ContextExpr.qll │ │ │ │ ├── HeaderAccess.qll │ │ │ │ ├── HeaderDefinition.qll │ │ │ │ ├── HeaderDefinition_defines.qll │ │ │ │ ├── HeaderDefinition_getAHeaderName.qll │ │ │ │ ├── RedirectInvocation.qll │ │ │ │ ├── RequestExpr.qll │ │ │ │ ├── RequestInputAccess.qll │ │ │ │ ├── ResponseExpr.qll │ │ │ │ ├── ResponseSendArgument.qll │ │ │ │ ├── RouteHandler.qll │ │ │ │ ├── RouteHandler_getAContextExpr.qll │ │ │ │ ├── RouteHandler_getARequestExpr.qll │ │ │ │ ├── RouteHandler_getAResponseExpr.qll │ │ │ │ ├── RouteHandler_getAResponseHeader.qll │ │ │ │ ├── RouteSetup.qll │ │ │ │ ├── RouteSetup_getARouteHandler.qll │ │ │ │ ├── RouteSetup_getServer.qll │ │ │ │ ├── src │ │ │ │ │ └── koa.js │ │ │ │ ├── tests.expected │ │ │ │ └── tests.ql │ │ │ ├── restify │ │ │ │ ├── HeaderDefinition.qll │ │ │ │ ├── HeaderDefinition_defines.qll │ │ │ │ ├── HeaderDefinition_getAHeaderName.qll │ │ │ │ ├── RequestExpr.qll │ │ │ │ ├── RequestInputAccess.qll │ │ │ │ ├── ResponseExpr.qll │ │ │ │ ├── RouteHandler.qll │ │ │ │ ├── RouteHandler_getARequestExpr.qll │ │ │ │ ├── RouteHandler_getAResponseExpr.qll │ │ │ │ ├── RouteHandler_getAResponseHeader.qll │ │ │ │ ├── RouteSetup.qll │ │ │ │ ├── RouteSetup_getARouteHandler.qll │ │ │ │ ├── RouteSetup_getServer.qll │ │ │ │ ├── ServerDefinition.qll │ │ │ │ ├── src │ │ │ │ │ └── test.js │ │ │ │ ├── tests.expected │ │ │ │ └── tests.ql │ │ │ ├── typeahead │ │ │ │ ├── test.expected │ │ │ │ ├── test.ql │ │ │ │ └── tst.js │ │ │ └── xUnit │ │ │ │ ├── tests.expected │ │ │ │ ├── tests.ql │ │ │ │ ├── tst.js │ │ │ │ └── xUnit.js │ │ ├── meta │ │ │ └── Extraction │ │ │ │ ├── FileWithExtractionMetrics.expected │ │ │ │ ├── FileWithExtractionMetrics.ql │ │ │ │ ├── FileWithExtractionMetrics_length.expected │ │ │ │ ├── FileWithExtractionMetrics_length.ql │ │ │ │ ├── FileWithExtractionMetrics_phases.expected │ │ │ │ ├── FileWithExtractionMetrics_phases.ql │ │ │ │ ├── tst.html │ │ │ │ ├── tst.js │ │ │ │ ├── tst2.js │ │ │ │ └── tst3.ts │ │ ├── ppNames │ │ │ ├── ppClassName.expected │ │ │ ├── ppClassName.ql │ │ │ ├── ppFnName.expected │ │ │ ├── ppFnName.ql │ │ │ └── tst.js │ │ ├── stmts │ │ │ ├── Containers.qll │ │ │ ├── DoubleColonMethods.qll │ │ │ ├── EnclosingStmt.qll │ │ │ ├── EnhancedForDefault.qll │ │ │ ├── JumpTargets.qll │ │ │ ├── LetStmt.qll │ │ │ ├── LineTerminators.qll │ │ │ ├── NumCatchClauses.qll │ │ │ ├── SemicolonInsertion.qll │ │ │ ├── conditionals.js │ │ │ ├── es2015.js │ │ │ ├── foreach.js │ │ │ ├── functions.js │ │ │ ├── getGuard.qll │ │ │ ├── guardedCatch.js │ │ │ ├── jscript.js │ │ │ ├── legacyletstmt.js │ │ │ ├── loops.js │ │ │ ├── options │ │ │ ├── others.js │ │ │ ├── tests.expected │ │ │ ├── tests.ql │ │ │ └── try.js │ │ └── variables │ │ │ ├── arrayPatternDefault.js │ │ │ ├── assignments.js │ │ │ ├── defaultargs.js │ │ │ ├── for.js │ │ │ ├── legacyletstmt.js │ │ │ ├── let.js │ │ │ ├── options │ │ │ ├── tests.expected │ │ │ ├── tests.ql │ │ │ ├── typeoftype.ts │ │ │ └── variables.js │ │ ├── qlpack.yml │ │ ├── queries.xml │ │ ├── query-tests │ │ ├── AlertSuppression │ │ │ ├── .gitattributes │ │ │ ├── AlertSuppression.expected │ │ │ ├── AlertSuppression.qlref │ │ │ ├── tst.html │ │ │ ├── tst.js │ │ │ ├── tstWindows.html │ │ │ └── tstWindows.js │ │ ├── AngularJS │ │ │ ├── DeadAngularJSEventListener │ │ │ │ ├── DeadAngularJSEventListener.expected │ │ │ │ ├── DeadAngularJSEventListener.qlref │ │ │ │ ├── tst.html │ │ │ │ └── tst.js │ │ │ ├── DependencyMismatch │ │ │ │ ├── DependencyMismatch.expected │ │ │ │ ├── DependencyMismatch.qlref │ │ │ │ └── tst.js │ │ │ ├── DisablingSce │ │ │ │ ├── DisablingSce.expected │ │ │ │ ├── DisablingSce.js │ │ │ │ └── DisablingSce.qlref │ │ │ ├── DoubleCompilation │ │ │ │ ├── DoubleCompilation.expected │ │ │ │ ├── DoubleCompilation.qlref │ │ │ │ ├── LICENSE │ │ │ │ ├── bad.js │ │ │ │ └── good.js │ │ │ ├── DuplicateDependency │ │ │ │ ├── DuplicateDependency.expected │ │ │ │ ├── DuplicateDependency.qlref │ │ │ │ ├── duplicates.js │ │ │ │ └── options │ │ │ ├── IncompatibleService │ │ │ │ ├── IncompatibleService.expected │ │ │ │ ├── IncompatibleService.qlref │ │ │ │ └── angular-incompatible-service.js │ │ │ ├── InsecureUrlWhitelist │ │ │ │ ├── InsecureUrlWhitelist.expected │ │ │ │ ├── InsecureUrlWhitelist.qlref │ │ │ │ └── tst.js │ │ │ ├── MissingExplicitInjection │ │ │ │ ├── MissingExplicitInjection.expected │ │ │ │ ├── MissingExplicitInjection.qlref │ │ │ │ └── missing-explicit-injection.js │ │ │ ├── RepeatedInjection │ │ │ │ ├── RepeatedInjection.expected │ │ │ │ ├── RepeatedInjection.qlref │ │ │ │ └── repeated-injection.js │ │ │ ├── UnusedAngularDependency │ │ │ │ ├── UnusedAngularDependency.expected │ │ │ │ ├── UnusedAngularDependency.qlref │ │ │ │ └── unused-angular-dependency.js │ │ │ └── UseNgSrc │ │ │ │ ├── UseNgSrc.expected │ │ │ │ ├── UseNgSrc.qlref │ │ │ │ ├── non-angular-template.html │ │ │ │ ├── tst.html │ │ │ │ ├── tst2.html │ │ │ │ └── tst_fragment.html │ │ ├── Comments │ │ │ ├── CommentedOutCode │ │ │ │ ├── CommentedOutCode.expected │ │ │ │ ├── CommentedOutCode.qlref │ │ │ │ └── commentedCode.js │ │ │ └── TodoComments │ │ │ │ ├── TodoComments.expected │ │ │ │ ├── TodoComments.qlref │ │ │ │ ├── fixmeTagPresence.js │ │ │ │ ├── todoTagPresence.js │ │ │ │ └── tst.js │ │ ├── DOM │ │ │ ├── Alert │ │ │ │ ├── Alert.expected │ │ │ │ ├── Alert.qlref │ │ │ │ └── alert.js │ │ │ ├── HTML │ │ │ │ ├── AmbiguousIdAttribute.expected │ │ │ │ ├── AmbiguousIdAttribute.html │ │ │ │ ├── AmbiguousIdAttribute.qlref │ │ │ │ ├── AmbiguousIdAttributeGood.html │ │ │ │ ├── AmbiguousIdAttribute_fragment.html │ │ │ │ ├── ConflictingAttributes.expected │ │ │ │ ├── ConflictingAttributes.html │ │ │ │ ├── ConflictingAttributes.qlref │ │ │ │ ├── ConflictingAttributesGood.html │ │ │ │ ├── DuplicateAttributes.expected │ │ │ │ ├── DuplicateAttributes.html │ │ │ │ ├── DuplicateAttributes.qlref │ │ │ │ ├── DuplicateAttributesGood.html │ │ │ │ ├── MalformedIdAttribute.expected │ │ │ │ ├── MalformedIdAttribute.html │ │ │ │ ├── MalformedIdAttribute.qlref │ │ │ │ ├── MalformedIdAttributeGood.html │ │ │ │ ├── jinja2.html │ │ │ │ ├── options │ │ │ │ ├── templates.html │ │ │ │ └── tst.js │ │ │ ├── PseudoEval │ │ │ │ ├── PseudoEval.expected │ │ │ │ ├── PseudoEval.qlref │ │ │ │ └── tst.js │ │ │ └── TargetBlank │ │ │ │ ├── TargetBlank.expected │ │ │ │ ├── TargetBlank.qlref │ │ │ │ ├── tst.html │ │ │ │ └── tst.js │ │ ├── Declarations │ │ │ ├── ArgumentsRedefined │ │ │ │ ├── ArgumentsRedefined.expected │ │ │ │ ├── ArgumentsRedefined.qlref │ │ │ │ ├── externs.js │ │ │ │ ├── tst.js │ │ │ │ └── types.d.ts │ │ │ ├── AssignmentToConst │ │ │ │ ├── AssignmentToConst.expected │ │ │ │ ├── AssignmentToConst.qlref │ │ │ │ ├── classes.js │ │ │ │ ├── const6.js │ │ │ │ ├── functions.js │ │ │ │ ├── other.js │ │ │ │ └── tst.js │ │ │ ├── ClobberingVarInit │ │ │ │ ├── ClobberingVarInit.expected │ │ │ │ ├── ClobberingVarInit.qlref │ │ │ │ └── tst.js │ │ │ ├── ConflictingFunctions │ │ │ │ ├── ConflictingFunctions.expected │ │ │ │ ├── ConflictingFunctions.qlref │ │ │ │ ├── tst.js │ │ │ │ └── tst2.ts │ │ │ ├── DeadStoreOfGlobal │ │ │ │ ├── DeadStoreOfGlobal.expected │ │ │ │ ├── DeadStoreOfGlobal.qlref │ │ │ │ ├── externs.js │ │ │ │ ├── node.js │ │ │ │ ├── tst.js │ │ │ │ ├── with.js │ │ │ │ └── worker.js │ │ │ ├── DeadStoreOfLocal │ │ │ │ ├── DeadStoreOfLocal.expected │ │ │ │ ├── DeadStoreOfLocal.qlref │ │ │ │ ├── computedFieldNames.ts │ │ │ │ ├── computedInterfaceProperty.ts │ │ │ │ ├── exportDefaultClass.ts │ │ │ │ ├── exportDefaultFunction.ts │ │ │ │ ├── exportSymbol.ts │ │ │ │ ├── extends.js │ │ │ │ ├── externs.js │ │ │ │ ├── fields.js │ │ │ │ ├── for-of-continue.js │ │ │ │ ├── fundecls.js │ │ │ │ ├── fundecls2.js │ │ │ │ ├── m.js │ │ │ │ ├── namespace.ts │ │ │ │ ├── options │ │ │ │ ├── overload.ts │ │ │ │ ├── tst.js │ │ │ │ ├── tst2.js │ │ │ │ ├── tst3.js │ │ │ │ └── tst3b.js │ │ │ ├── DeadStoreOfProperty │ │ │ │ ├── DeadStoreOfProperty.expected │ │ │ │ ├── DeadStoreOfProperty.qlref │ │ │ │ ├── accessors.js │ │ │ │ ├── closure-compiler-tricks.js │ │ │ │ ├── exports.js │ │ │ │ ├── externs.js │ │ │ │ ├── fieldInit.ts │ │ │ │ ├── list-manipulation.js │ │ │ │ ├── odasa-7636.js │ │ │ │ ├── real-world-examples.js │ │ │ │ └── tst.js │ │ │ ├── DeclBeforeUse │ │ │ │ ├── DeclBeforeUse.expected │ │ │ │ ├── DeclBeforeUse.qlref │ │ │ │ ├── es2015.js │ │ │ │ ├── jslint.js │ │ │ │ ├── tst.js │ │ │ │ ├── tst2.js │ │ │ │ └── typescript.ts │ │ │ ├── DefaultArgumentReferencesNestedFunction │ │ │ │ ├── DefaultArgumentReferencesNestedFunction.expected │ │ │ │ ├── DefaultArgumentReferencesNestedFunction.qlref │ │ │ │ └── tst.js │ │ │ ├── DuplicateVarDecl │ │ │ │ ├── DuplicateVarDecl.expected │ │ │ │ ├── DuplicateVarDecl.qlref │ │ │ │ └── tst.js │ │ │ ├── IneffectiveParameterType │ │ │ │ ├── IneffectiveParameterType.expected │ │ │ │ ├── IneffectiveParameterType.qlref │ │ │ │ ├── tst.js │ │ │ │ └── tst.ts │ │ │ ├── MissingThisQualifier │ │ │ │ ├── MissingThisQualifier.expected │ │ │ │ ├── MissingThisQualifier.qlref │ │ │ │ ├── abstract-missing.ts │ │ │ │ ├── externs.js │ │ │ │ ├── ignored-by-externs.js │ │ │ │ ├── ignored-by-jslint.js │ │ │ │ ├── indirection.js │ │ │ │ ├── missing1.js │ │ │ │ ├── missing2.js │ │ │ │ ├── namespaces-defs.ts │ │ │ │ ├── namespaces-uses.ts │ │ │ │ ├── non-global.js │ │ │ │ ├── not-ignored-by-jslint.js │ │ │ │ ├── present1.js │ │ │ │ ├── present2.js │ │ │ │ └── present3.js │ │ │ ├── MissingVarDecl │ │ │ │ ├── MissingVarDecl.expected │ │ │ │ ├── MissingVarDecl.qlref │ │ │ │ ├── test.js │ │ │ │ ├── test2.js │ │ │ │ └── tst3.js │ │ │ ├── MixedStaticInstanceThisAccess │ │ │ │ ├── MixedStaticInstanceThisAccess.expected │ │ │ │ ├── MixedStaticInstanceThisAccess.qlref │ │ │ │ ├── instanceInstance.js │ │ │ │ ├── instanceInstanceWithStaticExtra.js │ │ │ │ ├── instanceStatic.js │ │ │ │ ├── lvalue.js │ │ │ │ ├── staticInstance.js │ │ │ │ ├── staticStatic.js │ │ │ │ ├── staticStaticWithInstanceExtra.js │ │ │ │ ├── throughClass.js │ │ │ │ └── tst.js │ │ │ ├── RedeclaredVariable │ │ │ │ ├── RedeclaredVariable.expected │ │ │ │ ├── RedeclaredVariable.qlref │ │ │ │ ├── externs.js │ │ │ │ ├── redeclaredVariable2.js │ │ │ │ ├── restprops.js │ │ │ │ ├── sameNameForFunctionAndVariable.js │ │ │ │ ├── tst.js │ │ │ │ ├── tst.ts │ │ │ │ ├── tst2.js │ │ │ │ ├── tst3.js │ │ │ │ └── tst4.js │ │ │ ├── SuspiciousMethodNameDeclaration │ │ │ │ ├── SuspiciousMethodNameDeclaration.expected │ │ │ │ ├── SuspiciousMethodNameDeclaration.qlref │ │ │ │ ├── tst.js │ │ │ │ └── tst.ts │ │ │ ├── TemporalDeadZone │ │ │ │ ├── TemporalDeadZone.expected │ │ │ │ ├── TemporalDeadZone.qlref │ │ │ │ └── tst.js │ │ │ ├── TooManyParameters │ │ │ │ ├── TooManyParameters.expected │ │ │ │ ├── TooManyParameters.qlref │ │ │ │ ├── excessiveParameterList.js │ │ │ │ ├── externs.js │ │ │ │ └── module.js │ │ │ ├── UniqueParameterNames │ │ │ │ ├── UniqueParameterNames.expected │ │ │ │ ├── UniqueParameterNames.qlref │ │ │ │ ├── options │ │ │ │ └── tst.js │ │ │ ├── UniquePropertyNames │ │ │ │ ├── UniquePropertyNames.expected │ │ │ │ ├── UniquePropertyNames.qlref │ │ │ │ ├── accessors.ts │ │ │ │ ├── tst.js │ │ │ │ └── tst2.js │ │ │ ├── UnreachableOverloads │ │ │ │ ├── UnreachableMethodOverloads.expected │ │ │ │ ├── UnreachableMethodOverloads.qlref │ │ │ │ ├── tsconfig.json │ │ │ │ └── tst.ts │ │ │ ├── UnstableCyclicImport │ │ │ │ ├── A.ts │ │ │ │ ├── B.ts │ │ │ │ ├── ExampleBad │ │ │ │ │ ├── audio.js │ │ │ │ │ ├── client.js │ │ │ │ │ ├── services.js │ │ │ │ │ └── store.js │ │ │ │ ├── ExampleGood │ │ │ │ │ ├── audio.js │ │ │ │ │ ├── client.js │ │ │ │ │ ├── service_base.js │ │ │ │ │ ├── services.js │ │ │ │ │ └── store.js │ │ │ │ ├── UnstableCyclicImport.expected │ │ │ │ ├── UnstableCyclicImport.qlref │ │ │ │ ├── acyclicImport.ts │ │ │ │ ├── entryA.ts │ │ │ │ ├── entryB.ts │ │ │ │ ├── exportCycleA.ts │ │ │ │ ├── exportCycleB.ts │ │ │ │ ├── exportCycleEntryA.ts │ │ │ │ ├── exportCycleEntryB.ts │ │ │ │ ├── safeA.ts │ │ │ │ ├── safeB.ts │ │ │ │ ├── typeA.ts │ │ │ │ └── typeB.ts │ │ │ ├── UnusedParameter │ │ │ │ ├── UnusedParameter.expected │ │ │ │ ├── UnusedParameter.qlref │ │ │ │ ├── externs.js │ │ │ │ ├── istype.ts │ │ │ │ ├── parameter_field.ts │ │ │ │ ├── restprops.js │ │ │ │ ├── setter.js │ │ │ │ ├── thisparameter.ts │ │ │ │ ├── tst.js │ │ │ │ ├── tst2.js │ │ │ │ └── typeoftype.ts │ │ │ ├── UnusedProperty │ │ │ │ ├── UnusedProperty.expected │ │ │ │ ├── UnusedProperty.qlref │ │ │ │ ├── tst-yield.js │ │ │ │ ├── tst.js │ │ │ │ └── tst2.ts │ │ │ └── UnusedVariable │ │ │ │ ├── Babelrc │ │ │ │ ├── .babelrc.json │ │ │ │ └── importPragma.jsx │ │ │ │ ├── UnusedIndexVariable.js │ │ │ │ ├── UnusedVariable.expected │ │ │ │ ├── UnusedVariable.qlref │ │ │ │ ├── dead.js │ │ │ │ ├── decorated.ts │ │ │ │ ├── es2015.js │ │ │ │ ├── eval.js │ │ │ │ ├── exportenum.ts │ │ │ │ ├── externs.js │ │ │ │ ├── funbind.js │ │ │ │ ├── importWithoutPragma.jsx │ │ │ │ ├── importtype.ts │ │ │ │ ├── jsx.js │ │ │ │ ├── jsxpragma.js │ │ │ │ ├── multi-imports.js │ │ │ │ ├── namespaceImportAsType.ts │ │ │ │ ├── node.js │ │ │ │ ├── options │ │ │ │ ├── react-jsx.js │ │ │ │ ├── require-react-1.js │ │ │ │ ├── require-react-2.js │ │ │ │ ├── require-react-3.js │ │ │ │ ├── require-react-in-other-scope.js │ │ │ │ ├── restprops.js │ │ │ │ ├── thisparam.ts │ │ │ │ ├── ts │ │ │ │ ├── tsconfig.json │ │ │ │ └── usesreact.tsx │ │ │ │ ├── typeInTemplateLiteralTag.ts │ │ │ │ ├── typeoftype.ts │ │ │ │ ├── types.d.ts │ │ │ │ ├── underscore.js │ │ │ │ └── unusedShadowed.ts │ │ ├── Electron │ │ │ ├── DangerousWebPreferencesSettings │ │ │ │ ├── AllowRunningInsecureContent.expected │ │ │ │ ├── AllowRunningInsecureContent.qlref │ │ │ │ ├── DangerousWebPreferences.js │ │ │ │ ├── DisablingWebSecurity.expected │ │ │ │ └── DisablingWebSecurity.qlref │ │ │ └── NodeIntegration │ │ │ │ ├── EnablingNodeIntegration.expected │ │ │ │ ├── EnablingNodeIntegration.js │ │ │ │ └── EnablingNodeIntegration.qlref │ │ ├── Expressions │ │ │ ├── BitwiseSignCheck │ │ │ │ ├── BitwiseSignCheck.expected │ │ │ │ ├── BitwiseSignCheck.qlref │ │ │ │ └── tst.js │ │ │ ├── CompareIdenticalValues │ │ │ │ ├── CompareIdenticalValues.expected │ │ │ │ ├── CompareIdenticalValues.qlref │ │ │ │ ├── templates.js │ │ │ │ └── tst.js │ │ │ ├── ComparisonWithNaN │ │ │ │ ├── ComparisonWithNaN.expected │ │ │ │ ├── ComparisonWithNaN.qlref │ │ │ │ └── tst.js │ │ │ ├── DuplicateCondition │ │ │ │ ├── DuplicateCondition.expected │ │ │ │ ├── DuplicateCondition.qlref │ │ │ │ └── tst.js │ │ │ ├── DuplicateProperty │ │ │ │ ├── DuplicateProperty.expected │ │ │ │ ├── DuplicateProperty.qlref │ │ │ │ ├── tst.js │ │ │ │ └── tst2.js │ │ │ ├── DuplicateSwitchCase │ │ │ │ ├── DuplicateSwitchCase.expected │ │ │ │ ├── DuplicateSwitchCase.qlref │ │ │ │ └── tst.js │ │ │ ├── ExprHasNoEffect │ │ │ │ ├── ExprHasNoEffect.expected │ │ │ │ ├── ExprHasNoEffect.qlref │ │ │ │ ├── babel.js │ │ │ │ ├── config.js │ │ │ │ ├── es2015.js │ │ │ │ ├── externs.js │ │ │ │ ├── externs2.js │ │ │ │ ├── jsonlike.js │ │ │ │ ├── ngInject.js │ │ │ │ ├── options │ │ │ │ ├── should.js │ │ │ │ ├── systemjs.js │ │ │ │ ├── try.js │ │ │ │ ├── tst.html │ │ │ │ ├── tst.js │ │ │ │ ├── tst2.js │ │ │ │ ├── uselessfn.js │ │ │ │ └── xUnit.js │ │ │ ├── HeterogeneousComparison │ │ │ │ ├── HeterogeneousComparison.expected │ │ │ │ ├── HeterogeneousComparison.qlref │ │ │ │ ├── baseGetTag.js │ │ │ │ ├── interprocedural.js │ │ │ │ ├── options │ │ │ │ └── tst.js │ │ │ ├── ImplicitOperandConversion │ │ │ │ ├── ImplicitOperandConversion.expected │ │ │ │ ├── ImplicitOperandConversion.qlref │ │ │ │ ├── options │ │ │ │ └── tst.js │ │ │ ├── MissingAwait │ │ │ │ ├── MissingAwait.expected │ │ │ │ ├── MissingAwait.qlref │ │ │ │ ├── tsTest.ts │ │ │ │ ├── tsconfig.json │ │ │ │ └── tst.js │ │ │ ├── MissingDotLengthInComparison │ │ │ │ ├── MissingDotLengthInComparison.expected │ │ │ │ ├── MissingDotLengthInComparison.js │ │ │ │ └── MissingDotLengthInComparison.qlref │ │ │ ├── MissingSpaceInAppend │ │ │ │ ├── MissingSpaceInAppend.expected │ │ │ │ ├── MissingSpaceInAppend.qlref │ │ │ │ ├── missing.js │ │ │ │ └── ok.js │ │ │ ├── MisspelledIdentifier │ │ │ │ ├── MisspelledIdentifier.expected │ │ │ │ ├── MisspelledIdentifier.qlref │ │ │ │ └── tst.js │ │ │ ├── MisspelledVariableName │ │ │ │ ├── MisspelledVariableName.expected │ │ │ │ ├── MisspelledVariableName.js │ │ │ │ ├── MisspelledVariableName.qlref │ │ │ │ └── tst.js │ │ │ ├── RedundantExpression │ │ │ │ ├── RedundantExpression.expected │ │ │ │ ├── RedundantExpression.qlref │ │ │ │ └── tst.js │ │ │ ├── SelfAssignment │ │ │ │ ├── SelfAssignment.expected │ │ │ │ ├── SelfAssignment.qlref │ │ │ │ ├── externs.js │ │ │ │ ├── jsdoc.js │ │ │ │ └── tst.js │ │ │ ├── ShiftOutOfRange │ │ │ │ ├── ShiftOutOfRange.expected │ │ │ │ ├── ShiftOutOfRange.qlref │ │ │ │ ├── options │ │ │ │ └── tst.js │ │ │ ├── StringInsteadOfRegex │ │ │ │ ├── StringInsteadOfRegex.expected │ │ │ │ ├── StringInsteadOfRegex.qlref │ │ │ │ └── tst.js │ │ │ ├── SuspiciousInvocation │ │ │ │ ├── SuspiciousInvocation.expected │ │ │ │ ├── SuspiciousInvocation.js │ │ │ │ ├── SuspiciousInvocation.qlref │ │ │ │ ├── SuspiciousInvocationGood.js │ │ │ │ ├── SuspiciousInvocationGood2.js │ │ │ │ ├── ambient_extends.d.ts │ │ │ │ ├── classexpr.js │ │ │ │ ├── eval.js │ │ │ │ ├── fields.js │ │ │ │ ├── fundecls.js │ │ │ │ ├── l20n-service.js │ │ │ │ ├── namespace.ts │ │ │ │ ├── optional-chaining.js │ │ │ │ ├── options │ │ │ │ ├── super.js │ │ │ │ └── unreachable-code.js │ │ │ ├── SuspiciousPropAccess │ │ │ │ ├── SuspiciousPropAccess.expected │ │ │ │ ├── SuspiciousPropAccess.js │ │ │ │ ├── SuspiciousPropAccess.qlref │ │ │ │ ├── SuspiciousPropAccessGood.js │ │ │ │ ├── class_in_module.ts │ │ │ │ ├── classes.js │ │ │ │ ├── destructureInForOf.ts │ │ │ │ ├── export_equals.ts │ │ │ │ ├── export_equals_client.ts │ │ │ │ ├── export_import.ts │ │ │ │ ├── export_import_client.ts │ │ │ │ ├── optional-chaining.js │ │ │ │ ├── options │ │ │ │ ├── tst.js │ │ │ │ ├── tst2.ts │ │ │ │ ├── typeassertion.ts │ │ │ │ ├── typeoftype.ts │ │ │ │ └── yield_in_non_generator.js │ │ │ ├── UnboundEventHandlerReceiver │ │ │ │ ├── UnboundEventHandlerReceiver.expected │ │ │ │ ├── UnboundEventHandlerReceiver.qlref │ │ │ │ ├── options │ │ │ │ └── tst.js │ │ │ ├── UnclearOperatorPrecedence │ │ │ │ ├── UnclearOperatorPrecedence.expected │ │ │ │ ├── UnclearOperatorPrecedence.qlref │ │ │ │ ├── tst.js │ │ │ │ └── tst.min.js │ │ │ ├── UnknownDirective │ │ │ │ ├── UnknownDirective.expected │ │ │ │ ├── UnknownDirective.html │ │ │ │ ├── UnknownDirective.js │ │ │ │ ├── UnknownDirective.qlref │ │ │ │ └── dual-use.js │ │ │ ├── UnneededDefensiveProgramming │ │ │ │ ├── HeterogeneousComparison.expected │ │ │ │ ├── HeterogeneousComparison.qlref │ │ │ │ ├── UnneededDefensiveProgramming.expected │ │ │ │ ├── UnneededDefensiveProgramming.qlref │ │ │ │ ├── UselessConditional.expected │ │ │ │ ├── UselessConditional.qlref │ │ │ │ ├── global-module-definition.js │ │ │ │ ├── module-environment-detection.js │ │ │ │ ├── regression.js │ │ │ │ ├── tst.js │ │ │ │ └── tst2.js │ │ │ └── WhitespaceContradictsPrecedence │ │ │ │ ├── WhitespaceContradictsPrecedence.expected │ │ │ │ ├── WhitespaceContradictsPrecedence.qlref │ │ │ │ └── tst.js │ │ ├── JSDoc │ │ │ ├── BadParamTag │ │ │ │ ├── BadParamTag.expected │ │ │ │ ├── BadParamTag.qlref │ │ │ │ ├── externs.js │ │ │ │ └── tst.js │ │ │ ├── JSDocForNonExistentParameter │ │ │ │ ├── JSDocForNonExistentParameter.expected │ │ │ │ ├── JSDocForNonExistentParameter.qlref │ │ │ │ └── tst.js │ │ │ └── UndocumentedParameter │ │ │ │ ├── UndocumentedParameter.expected │ │ │ │ ├── UndocumentedParameter.qlref │ │ │ │ └── tst.js │ │ ├── LanguageFeatures │ │ │ ├── ArgumentsCallerCallee │ │ │ │ ├── ArgumentsCallerCallee.expected │ │ │ │ ├── ArgumentsCallerCallee.qlref │ │ │ │ └── tst.js │ │ │ ├── BadTypeof │ │ │ │ ├── BadTypeof.expected │ │ │ │ ├── BadTypeof.qlref │ │ │ │ └── tst.js │ │ │ ├── ConditionalComments │ │ │ │ ├── ConditionalComments.expected │ │ │ │ ├── ConditionalComments.qlref │ │ │ │ └── conditionalComment.js │ │ │ ├── DebuggerStatement │ │ │ │ ├── DebuggerStatement.expected │ │ │ │ ├── DebuggerStatement.qlref │ │ │ │ └── debuggerStatement.js │ │ │ ├── DeleteVar │ │ │ │ ├── DeleteVar.expected │ │ │ │ ├── DeleteVar.qlref │ │ │ │ └── tst.js │ │ │ ├── EmptyArrayInit │ │ │ │ ├── EmptyArrayInit.expected │ │ │ │ ├── EmptyArrayInit.qlref │ │ │ │ └── tst.js │ │ │ ├── Eval │ │ │ │ ├── Eval.expected │ │ │ │ ├── Eval.qlref │ │ │ │ └── eval.js │ │ │ ├── ExpressionClosures │ │ │ │ ├── ExpressionClosures.expected │ │ │ │ ├── ExpressionClosures.qlref │ │ │ │ ├── foreach.js │ │ │ │ ├── jscript.js │ │ │ │ ├── letExpr.js │ │ │ │ ├── letStmt.js │ │ │ │ ├── options │ │ │ │ ├── postfixComprehension.js │ │ │ │ └── tst.js │ │ │ ├── ForInComprehensionBlocks │ │ │ │ ├── ForInComprehensionBlocks.expected │ │ │ │ ├── ForInComprehensionBlocks.qlref │ │ │ │ ├── options │ │ │ │ └── tst.js │ │ │ ├── IllegalInvocation │ │ │ │ ├── IllegalInvocation.expected │ │ │ │ ├── IllegalInvocation.qlref │ │ │ │ └── tst.js │ │ │ ├── InconsistentNew │ │ │ │ ├── InconsistentNew.expected │ │ │ │ ├── InconsistentNew.qlref │ │ │ │ ├── a1.js │ │ │ │ ├── a2.js │ │ │ │ ├── arraycalls.js │ │ │ │ ├── arraydef.js │ │ │ │ ├── c1.js │ │ │ │ ├── c2.js │ │ │ │ ├── externs.js │ │ │ │ ├── m.js │ │ │ │ └── tst.js │ │ │ ├── InvalidPrototype │ │ │ │ ├── InvalidPrototype.expected │ │ │ │ ├── InvalidPrototype.qlref │ │ │ │ └── tst.js │ │ │ ├── JumpFromFinally │ │ │ │ ├── JumpFromFinally.expected │ │ │ │ ├── JumpFromFinally.qlref │ │ │ │ └── tst.js │ │ │ ├── LengthComparisonOffByOne │ │ │ │ ├── LengthComparisonOffByOne.expected │ │ │ │ ├── LengthComparisonOffByOne.qlref │ │ │ │ └── tst.js │ │ │ ├── NonLinearPattern │ │ │ │ ├── NonLinearPattern.expected │ │ │ │ ├── NonLinearPattern.qlref │ │ │ │ ├── NonLinearPatternTS.ts │ │ │ │ ├── NonLinearPatternTSGood.ts │ │ │ │ ├── ts-test.ts │ │ │ │ └── tst.js │ │ │ ├── PropertyWriteOnPrimitive │ │ │ │ ├── PropertyWriteOnPrimitive.expected │ │ │ │ ├── PropertyWriteOnPrimitive.qlref │ │ │ │ └── tst.js │ │ │ ├── SemicolonInsertion │ │ │ │ ├── SemicolonInsertion.expected │ │ │ │ ├── SemicolonInsertion.qlref │ │ │ │ ├── export.js │ │ │ │ ├── jscript.js │ │ │ │ ├── options │ │ │ │ └── tst.js │ │ │ ├── SetterIgnoresParameter │ │ │ │ ├── SetterIgnoresParameter.expected │ │ │ │ ├── SetterIgnoresParameter.qlref │ │ │ │ └── tst.js │ │ │ ├── SetterReturn │ │ │ │ ├── SetterReturn.expected │ │ │ │ ├── SetterReturn.qlref │ │ │ │ └── tst.js │ │ │ ├── SpuriousArguments │ │ │ │ ├── SpuriousArguments.expected │ │ │ │ ├── SpuriousArguments.qlref │ │ │ │ ├── arrowfn.js │ │ │ │ ├── es2015.js │ │ │ │ ├── externs.js │ │ │ │ ├── globals.js │ │ │ │ ├── reflection.js │ │ │ │ ├── restargs.js │ │ │ │ ├── thisparameter.ts │ │ │ │ └── tst.js │ │ │ ├── StrictModeCallStackIntrospection │ │ │ │ ├── StrictModeCallStackIntrospection.expected │ │ │ │ ├── StrictModeCallStackIntrospection.qlref │ │ │ │ └── tst.js │ │ │ ├── SyntaxError │ │ │ │ ├── SyntaxError.expected │ │ │ │ ├── SyntaxError.qlref │ │ │ │ ├── arrows.js │ │ │ │ ├── destructingPrivate.js │ │ │ │ ├── options │ │ │ │ ├── privateMethod.js │ │ │ │ ├── tst.html │ │ │ │ └── tst.js │ │ │ ├── TemplateSyntaxInStringLiteral │ │ │ │ ├── TemplateSyntaxInStringLiteral.expected │ │ │ │ ├── TemplateSyntaxInStringLiteral.js │ │ │ │ └── TemplateSyntaxInStringLiteral.qlref │ │ │ ├── ThisBeforeSuper │ │ │ │ ├── LICENSE │ │ │ │ ├── ThisBeforeSuper.expected │ │ │ │ ├── ThisBeforeSuper.qlref │ │ │ │ ├── invalid.js │ │ │ │ └── valid.js │ │ │ ├── UnusedIndexVariable │ │ │ │ ├── UnusedIndexVariable.expected │ │ │ │ ├── UnusedIndexVariable.js │ │ │ │ ├── UnusedIndexVariable.qlref │ │ │ │ ├── UnusedIndexVariable2.js │ │ │ │ ├── UnusedIndexVariableGood.js │ │ │ │ ├── UnusedIndexVariableGood2.js │ │ │ │ └── tst.js │ │ │ ├── WithStatement │ │ │ │ ├── WithStatement.expected │ │ │ │ ├── WithStatement.qlref │ │ │ │ └── withStatement.js │ │ │ └── YieldInNonGenerator │ │ │ │ ├── YieldInNonGenerator.expected │ │ │ │ ├── YieldInNonGenerator.qlref │ │ │ │ ├── options │ │ │ │ └── tst.js │ │ ├── Metrics │ │ │ ├── ExternalDependencies │ │ │ │ ├── ExternalDependencies.expected │ │ │ │ ├── ExternalDependencies.qlref │ │ │ │ ├── README │ │ │ │ └── src │ │ │ │ │ ├── a.js │ │ │ │ │ ├── b.js │ │ │ │ │ ├── jquery.js │ │ │ │ │ ├── package.json │ │ │ │ │ ├── sub │ │ │ │ │ ├── c.js │ │ │ │ │ └── subsub │ │ │ │ │ │ ├── d.js │ │ │ │ │ │ └── package.json │ │ │ │ │ └── tst.html │ │ │ └── FLinesOfCode │ │ │ │ ├── FLinesOfCode.expected │ │ │ │ ├── FLinesOfCode.qlref │ │ │ │ ├── tst.html │ │ │ │ └── tst.js │ │ ├── NodeJS │ │ │ ├── CyclicImport │ │ │ │ ├── CyclicImport.expected │ │ │ │ ├── CyclicImport.qlref │ │ │ │ ├── Require_getImportedFile.expected │ │ │ │ ├── Require_getImportedFile.ql │ │ │ │ ├── a.js │ │ │ │ ├── b.js │ │ │ │ ├── main.js │ │ │ │ ├── selfimport.js │ │ │ │ ├── test1 │ │ │ │ │ ├── a.js │ │ │ │ │ └── b.js │ │ │ │ └── test2 │ │ │ │ │ └── inner │ │ │ │ │ └── a.js │ │ │ ├── DubiousImport │ │ │ │ ├── DubiousImport.expected │ │ │ │ ├── DubiousImport.qlref │ │ │ │ ├── a.js │ │ │ │ ├── b.js │ │ │ │ ├── c.js │ │ │ │ ├── d.js │ │ │ │ ├── e.js │ │ │ │ ├── export_getter.js │ │ │ │ ├── externs.js │ │ │ │ ├── f.js │ │ │ │ ├── fs-monkeypatch.js │ │ │ │ ├── fs.js │ │ │ │ ├── g.js │ │ │ │ ├── h.js │ │ │ │ ├── k.js │ │ │ │ ├── l.js │ │ │ │ ├── m.js │ │ │ │ ├── main.js │ │ │ │ ├── multi_import.js │ │ │ │ └── n.js │ │ │ ├── InvalidExport │ │ │ │ ├── InvalidExport.expected │ │ │ │ ├── InvalidExport.qlref │ │ │ │ ├── tst.js │ │ │ │ ├── tst2a.js │ │ │ │ ├── tst2b.js │ │ │ │ ├── tst2c.js │ │ │ │ ├── tst3.js │ │ │ │ ├── tst3b.js │ │ │ │ ├── tst4.js │ │ │ │ ├── tst5.js │ │ │ │ └── tst6.js │ │ │ ├── MissingExports │ │ │ │ ├── .eslintrc.json │ │ │ │ ├── MissingExports.expected │ │ │ │ ├── MissingExports.js │ │ │ │ ├── MissingExports.qlref │ │ │ │ ├── MissingExportsGood.js │ │ │ │ ├── MissingExportsGood2.js │ │ │ │ ├── MissingExportsGood3.js │ │ │ │ ├── a.js │ │ │ │ ├── b.js │ │ │ │ ├── externs.js │ │ │ │ └── tst.js │ │ │ ├── UnresolvableImport │ │ │ │ ├── UnresolvableImport.expected │ │ │ │ ├── UnresolvableImport.qlref │ │ │ │ ├── externs │ │ │ │ │ ├── fs.js │ │ │ │ │ └── other.js │ │ │ │ ├── src │ │ │ │ │ ├── m.js │ │ │ │ │ ├── package.json │ │ │ │ │ ├── sub │ │ │ │ │ │ ├── node_modules │ │ │ │ │ │ │ ├── mod │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ │ └── othermod │ │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ ├── subsub │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ └── tst.js │ │ │ │ │ │ └── tst.js │ │ │ │ │ └── tst.js │ │ │ │ └── tst.js │ │ │ └── UnusedDependency │ │ │ │ ├── UnusedDependency.expected │ │ │ │ ├── UnusedDependency.qlref │ │ │ │ └── src │ │ │ │ ├── index.html │ │ │ │ ├── index.js │ │ │ │ ├── js-import-require.js │ │ │ │ ├── mjs-import-require.mjs │ │ │ │ ├── other.js │ │ │ │ ├── package-lock.json │ │ │ │ └── package.json │ │ ├── Performance │ │ │ ├── NonLocalForIn │ │ │ │ ├── NonLocalForIn.expected │ │ │ │ ├── NonLocalForIn.qlref │ │ │ │ └── tst.js │ │ │ ├── ReDoS │ │ │ │ ├── ANodeBlog-LICENSE │ │ │ │ ├── CodeMirror-LICENSE │ │ │ │ ├── PolynomialBackTracking.expected │ │ │ │ ├── PolynomialBackTracking.ql │ │ │ │ ├── PolynomialReDoS.expected │ │ │ │ ├── PolynomialReDoS.qlref │ │ │ │ ├── Prism-LICENSE │ │ │ │ ├── Prototype.js-LICENSE │ │ │ │ ├── ReDoS.expected │ │ │ │ ├── ReDoS.qlref │ │ │ │ ├── brace-expansion-LICENSE │ │ │ │ ├── emptiness.js │ │ │ │ ├── highlight.js │ │ │ │ ├── jest-LICENSE │ │ │ │ ├── jsonschema.js │ │ │ │ ├── knockout-LICENSE │ │ │ │ ├── lib │ │ │ │ │ ├── closure.js │ │ │ │ │ └── lib.js │ │ │ │ ├── marked-LICENSE │ │ │ │ ├── package.json │ │ │ │ ├── polynomial-redos.js │ │ │ │ ├── regexplib │ │ │ │ │ ├── address.js │ │ │ │ │ ├── dates.js │ │ │ │ │ ├── email.js │ │ │ │ │ ├── markup.js │ │ │ │ │ ├── misc.js │ │ │ │ │ ├── numbers.js │ │ │ │ │ ├── strings.js │ │ │ │ │ └── uri.js │ │ │ │ └── tst.js │ │ │ └── ReassignParameterAndUseArguments │ │ │ │ ├── ReassignParameterAndUseArguments.expected │ │ │ │ ├── ReassignParameterAndUseArguments.qlref │ │ │ │ └── tst.js │ │ ├── React │ │ │ ├── DirectStateMutation │ │ │ │ ├── DirectStateMutation.expected │ │ │ │ ├── DirectStateMutation.qlref │ │ │ │ ├── README │ │ │ │ ├── invalid1.js │ │ │ │ ├── invalid2.js │ │ │ │ ├── invalid3.js │ │ │ │ ├── invalid4.js │ │ │ │ ├── invalid5.js │ │ │ │ ├── invalid6.js │ │ │ │ ├── invalid7.js │ │ │ │ ├── options │ │ │ │ ├── valid1.js │ │ │ │ ├── valid2.js │ │ │ │ ├── valid3.js │ │ │ │ ├── valid4.js │ │ │ │ ├── valid6.js │ │ │ │ ├── valid7.js │ │ │ │ ├── valid8.js │ │ │ │ └── valid9.js │ │ │ ├── InconsistentStateUpdate │ │ │ │ ├── InconsistentStateUpdate.expected │ │ │ │ ├── InconsistentStateUpdate.qlref │ │ │ │ └── tst.js │ │ │ ├── UnsupportedStateUpdateInLifecycleMethod │ │ │ │ ├── UnsupportedStateUpdateInLifecycleMethod.expected │ │ │ │ ├── UnsupportedStateUpdateInLifecycleMethod.qlref │ │ │ │ └── tst.js │ │ │ └── UnusedOrUndefinedStateProperty │ │ │ │ ├── UnusedOrUndefinedStateProperty.expected │ │ │ │ ├── UnusedOrUndefinedStateProperty.qlref │ │ │ │ ├── issue-2389.reduced.js │ │ │ │ ├── issue7506.js │ │ │ │ ├── options │ │ │ │ ├── undefined.js │ │ │ │ └── unused.js │ │ ├── RegExp │ │ │ ├── BackrefBeforeGroup │ │ │ │ ├── BackrefBeforeGroup.expected │ │ │ │ ├── BackrefBeforeGroup.qlref │ │ │ │ └── tst.js │ │ │ ├── BackrefIntoNegativeLookahead │ │ │ │ ├── BackrefIntoNegativeLookahead.expected │ │ │ │ ├── BackrefIntoNegativeLookahead.qlref │ │ │ │ └── tst.js │ │ │ ├── BackspaceEscape │ │ │ │ ├── BackspaceEscape.expected │ │ │ │ ├── BackspaceEscape.qlref │ │ │ │ └── tst.js │ │ │ ├── DuplicateCharacterInCharacterClass │ │ │ │ ├── DuplicateCharacterInCharacterClass.expected │ │ │ │ ├── DuplicateCharacterInCharacterClass.qlref │ │ │ │ └── tst.js │ │ │ ├── EmptyCharacterClass │ │ │ │ ├── EmptyCharacterClass.expected │ │ │ │ ├── EmptyCharacterClass.qlref │ │ │ │ └── tst.js │ │ │ ├── IdentityReplacement │ │ │ │ ├── IdentityReplacement.expected │ │ │ │ ├── IdentityReplacement.js │ │ │ │ ├── IdentityReplacement.qlref │ │ │ │ ├── IdentityReplacementGood.js │ │ │ │ └── tst.js │ │ │ ├── MalformedRegExp │ │ │ │ ├── MalformedRegExp.expected │ │ │ │ ├── MalformedRegExp.qlref │ │ │ │ └── tst.js │ │ │ ├── RegExpAlwaysMatches │ │ │ │ ├── RegExpAlwaysMatches.expected │ │ │ │ ├── RegExpAlwaysMatches.qlref │ │ │ │ └── tst.js │ │ │ ├── UnboundBackref │ │ │ │ ├── UnboundBackref.expected │ │ │ │ ├── UnboundBackref.qlref │ │ │ │ └── tst.js │ │ │ ├── UnmatchableCaret │ │ │ │ ├── UnmatchableCaret.expected │ │ │ │ ├── UnmatchableCaret.qlref │ │ │ │ └── tst.js │ │ │ └── UnmatchableDollar │ │ │ │ ├── UnmatchableDollar.expected │ │ │ │ ├── UnmatchableDollar.qlref │ │ │ │ └── tst.js │ │ ├── Security │ │ │ ├── CWE-020 │ │ │ │ ├── IncompleteHostnameRegExp.expected │ │ │ │ ├── IncompleteHostnameRegExp.qlref │ │ │ │ ├── IncompleteUrlSchemeCheck.expected │ │ │ │ ├── IncompleteUrlSchemeCheck.js │ │ │ │ ├── IncompleteUrlSchemeCheck.qlref │ │ │ │ ├── IncompleteUrlSchemeCheckGood.js │ │ │ │ ├── IncompleteUrlSubstringSanitization.expected │ │ │ │ ├── IncompleteUrlSubstringSanitization.qlref │ │ │ │ ├── IncorrectSuffixCheck.expected │ │ │ │ ├── IncorrectSuffixCheck.qlref │ │ │ │ ├── MissingRegExpAnchor.expected │ │ │ │ ├── MissingRegExpAnchor.qlref │ │ │ │ ├── UntrustedDataToExternalAPI.expected │ │ │ │ ├── UntrustedDataToExternalAPI.qlref │ │ │ │ ├── UselessCharacterEscape.expected │ │ │ │ ├── UselessCharacterEscape.ql │ │ │ │ ├── UselessRegExpCharacterEscape.expected │ │ │ │ ├── UselessRegExpCharacterEscape.qlref │ │ │ │ ├── examples │ │ │ │ │ ├── IncorrectSuffixCheck.js │ │ │ │ │ └── IncorrectSuffixCheckGood.js │ │ │ │ ├── tst-IncompleteHostnameRegExp.js │ │ │ │ ├── tst-IncompleteUrlSubstringSanitization.js │ │ │ │ ├── tst-SemiAnchoredRegExp.js │ │ │ │ ├── tst-UnanchoredUrlRegExp.js │ │ │ │ ├── tst-UntrustedDataToExternalAPI.js │ │ │ │ ├── tst-escapes.js │ │ │ │ └── tst.js │ │ │ ├── CWE-022 │ │ │ │ ├── DefinitelyTyped-LICENSE │ │ │ │ ├── TaintedPath │ │ │ │ │ ├── Consistency.expected │ │ │ │ │ ├── Consistency.ql │ │ │ │ │ ├── TaintedPath-es6.js │ │ │ │ │ ├── TaintedPath.expected │ │ │ │ │ ├── TaintedPath.js │ │ │ │ │ ├── TaintedPath.qlref │ │ │ │ │ ├── fs.js │ │ │ │ │ ├── my-fs-module.js │ │ │ │ │ ├── normalizedPaths.js │ │ │ │ │ ├── other-fs-libraries.js │ │ │ │ │ ├── pupeteer.js │ │ │ │ │ ├── tainted-access-paths.js │ │ │ │ │ ├── tainted-array-steps.js │ │ │ │ │ ├── tainted-require.js │ │ │ │ │ ├── tainted-sendFile.js │ │ │ │ │ ├── tainted-string-steps.js │ │ │ │ │ ├── torrents.js │ │ │ │ │ ├── typescript.ts │ │ │ │ │ └── views.js │ │ │ │ └── ZipSlip │ │ │ │ │ ├── AdmZipBad.js │ │ │ │ │ ├── TarSlipBad.js │ │ │ │ │ ├── ZipSlip.expected │ │ │ │ │ ├── ZipSlip.qlref │ │ │ │ │ ├── ZipSlipBad.js │ │ │ │ │ ├── ZipSlipBad2.js │ │ │ │ │ ├── ZipSlipBadUnzipper.js │ │ │ │ │ ├── ZipSlipGood.js │ │ │ │ │ ├── ZipSlipGoodBasename.js │ │ │ │ │ └── externs.js │ │ │ ├── CWE-073 │ │ │ │ ├── TemplateObjectInjection.expected │ │ │ │ ├── TemplateObjectInjection.qlref │ │ │ │ ├── tst.js │ │ │ │ └── tst2.js │ │ │ ├── CWE-078 │ │ │ │ ├── CommandInjection.expected │ │ │ │ ├── CommandInjection.qlref │ │ │ │ ├── Consistency.expected │ │ │ │ ├── Consistency.ql │ │ │ │ ├── IndirectCommandInjection.expected │ │ │ │ ├── IndirectCommandInjection.qlref │ │ │ │ ├── ShellCommandInjectionFromEnvironment.expected │ │ │ │ ├── ShellCommandInjectionFromEnvironment.qlref │ │ │ │ ├── UnsafeShellCommandConstruction.expected │ │ │ │ ├── UnsafeShellCommandConstruction.qlref │ │ │ │ ├── UselessUseOfCat.expected │ │ │ │ ├── UselessUseOfCat.ql │ │ │ │ ├── child_process-test.js │ │ │ │ ├── command-line-parameter-command-injection.js │ │ │ │ ├── exec-sh.js │ │ │ │ ├── exec-sh2.js │ │ │ │ ├── execSeries.js │ │ │ │ ├── form-parsers.js │ │ │ │ ├── lib │ │ │ │ │ ├── lib.js │ │ │ │ │ ├── lib2.js │ │ │ │ │ ├── other.js │ │ │ │ │ └── subLib │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── package.json │ │ │ │ ├── other.js │ │ │ │ ├── package.json │ │ │ │ ├── third-party-command-injection.js │ │ │ │ ├── tst_shell-command-injection-from-environment.js │ │ │ │ └── uselesscat.js │ │ │ ├── CWE-079 │ │ │ │ ├── DomBasedXss │ │ │ │ │ ├── ConsistencyDomBasedXss.expected │ │ │ │ │ ├── ConsistencyDomBasedXss.ql │ │ │ │ │ ├── Xss.expected │ │ │ │ │ ├── Xss.qlref │ │ │ │ │ ├── XssWithAdditionalSources.expected │ │ │ │ │ ├── XssWithAdditionalSources.ql │ │ │ │ │ ├── addEventListener.js │ │ │ │ │ ├── angular2-client.ts │ │ │ │ │ ├── classnames.js │ │ │ │ │ ├── d3.js │ │ │ │ │ ├── dates.js │ │ │ │ │ ├── encodeuri.js │ │ │ │ │ ├── event-handler-receiver.js │ │ │ │ │ ├── express.js │ │ │ │ │ ├── externs.js │ │ │ │ │ ├── jquery.js │ │ │ │ │ ├── jwt-server.js │ │ │ │ │ ├── jwt.js │ │ │ │ │ ├── nodemailer.js │ │ │ │ │ ├── optionalSanitizer.js │ │ │ │ │ ├── react-create-context.js │ │ │ │ │ ├── react-native.js │ │ │ │ │ ├── react-provide-context.js │ │ │ │ │ ├── react-use-context.js │ │ │ │ │ ├── react-use-state.js │ │ │ │ │ ├── sanitiser.js │ │ │ │ │ ├── stored-xss.js │ │ │ │ │ ├── string-manipulations.js │ │ │ │ │ ├── translate.js │ │ │ │ │ ├── tst.js │ │ │ │ │ ├── tst3.js │ │ │ │ │ ├── typeahead.js │ │ │ │ │ ├── v-html.vue │ │ │ │ │ ├── various-concat-obfuscations.js │ │ │ │ │ ├── winjs.js │ │ │ │ │ └── xmlRequest.js │ │ │ │ ├── ExceptionXss │ │ │ │ │ ├── ConsistencyExceptionXss.expected │ │ │ │ │ ├── ConsistencyExceptionXss.ql │ │ │ │ │ ├── ExceptionXss.expected │ │ │ │ │ ├── ExceptionXss.qlref │ │ │ │ │ ├── ajv.js │ │ │ │ │ ├── exception-xss.js │ │ │ │ │ └── externs.js │ │ │ │ ├── ReflectedXss │ │ │ │ │ ├── ConsistencyReflectedXss.expected │ │ │ │ │ ├── ConsistencyReflectedXss.ql │ │ │ │ │ ├── ReflectedXss.expected │ │ │ │ │ ├── ReflectedXss.js │ │ │ │ │ ├── ReflectedXss.qlref │ │ │ │ │ ├── ReflectedXssContentTypes.js │ │ │ │ │ ├── ReflectedXssGood.js │ │ │ │ │ ├── ReflectedXssGood2.js │ │ │ │ │ ├── ReflectedXssGood3.js │ │ │ │ │ ├── ReflectedXssWithCustomSanitizer.expected │ │ │ │ │ ├── ReflectedXssWithCustomSanitizer.ql │ │ │ │ │ ├── cookies.js │ │ │ │ │ ├── etherpad.js │ │ │ │ │ ├── externs.js │ │ │ │ │ ├── formatting.js │ │ │ │ │ ├── package.json │ │ │ │ │ ├── pages │ │ │ │ │ │ ├── Next.jsx │ │ │ │ │ │ └── api │ │ │ │ │ │ │ └── myapi.js │ │ │ │ │ ├── partial.js │ │ │ │ │ ├── promises.js │ │ │ │ │ └── tst2.js │ │ │ │ ├── StoredXss │ │ │ │ │ ├── ConsistencyStoredXss.expected │ │ │ │ │ ├── ConsistencyStoredXss.ql │ │ │ │ │ ├── StoredXss.expected │ │ │ │ │ ├── StoredXss.qlref │ │ │ │ │ ├── externs.js │ │ │ │ │ ├── xss-through-filenames.js │ │ │ │ │ └── xss-through-torrent.js │ │ │ │ ├── UnsafeJQueryPlugin │ │ │ │ │ ├── ConsistencyUnsafeJQueryPlugin.expected │ │ │ │ │ ├── ConsistencyUnsafeJQueryPlugin.ql │ │ │ │ │ ├── UnsafeJQueryPlugin.expected │ │ │ │ │ ├── UnsafeJQueryPlugin.qlref │ │ │ │ │ ├── externs.js │ │ │ │ │ └── unsafe-jquery-plugin.js │ │ │ │ └── XssThroughDom │ │ │ │ │ ├── ConsistencyXssThroughDom.expected │ │ │ │ │ ├── ConsistencyXssThroughDom.ql │ │ │ │ │ ├── XssThroughDom.expected │ │ │ │ │ ├── XssThroughDom.qlref │ │ │ │ │ ├── externs.js │ │ │ │ │ ├── forms.js │ │ │ │ │ └── xss-through-dom.js │ │ │ ├── CWE-089 │ │ │ │ ├── typed │ │ │ │ │ ├── SqlInjection.expected │ │ │ │ │ ├── SqlInjection.qlref │ │ │ │ │ ├── shim.d.ts │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── typedClient.ts │ │ │ │ └── untyped │ │ │ │ │ ├── Consistency.expected │ │ │ │ │ ├── Consistency.ql │ │ │ │ │ ├── DatabaseAccesses.expected │ │ │ │ │ ├── DatabaseAccesses.ql │ │ │ │ │ ├── SqlInjection.expected │ │ │ │ │ ├── SqlInjection.qlref │ │ │ │ │ ├── dbo.js │ │ │ │ │ ├── json-schema-validator.js │ │ │ │ │ ├── marsdb-flow-from.js │ │ │ │ │ ├── marsdb-flow-to.js │ │ │ │ │ ├── marsdb.js │ │ │ │ │ ├── minimongo.js │ │ │ │ │ ├── mongodb.js │ │ │ │ │ ├── mongodb_bodySafe.js │ │ │ │ │ ├── mongoose.js │ │ │ │ │ ├── mongooseJsonParse.js │ │ │ │ │ ├── mongooseModel.js │ │ │ │ │ ├── mongooseModelClient.js │ │ │ │ │ ├── node-postgres-LICENSE │ │ │ │ │ ├── node-sqlite3-LICENSE │ │ │ │ │ ├── redis.js │ │ │ │ │ ├── socketio.js │ │ │ │ │ ├── tst.js │ │ │ │ │ ├── tst2.js │ │ │ │ │ ├── tst3.js │ │ │ │ │ └── tst4.js │ │ │ ├── CWE-094 │ │ │ │ ├── CodeInjection │ │ │ │ │ ├── CodeInjection.expected │ │ │ │ │ ├── CodeInjection.qlref │ │ │ │ │ ├── HeuristicSourceCodeInjection.expected │ │ │ │ │ ├── HeuristicSourceCodeInjection.ql │ │ │ │ │ ├── ImproperCodeSanitization.expected │ │ │ │ │ ├── ImproperCodeSanitization.qlref │ │ │ │ │ ├── NoSQLCodeInjection.js │ │ │ │ │ ├── angularjs.js │ │ │ │ │ ├── bad-code-sanitization.js │ │ │ │ │ ├── eslint-escope-build.js │ │ │ │ │ ├── express.js │ │ │ │ │ ├── externs.js │ │ │ │ │ ├── module.js │ │ │ │ │ ├── react-native.js │ │ │ │ │ ├── react.js │ │ │ │ │ ├── template-sinks.js │ │ │ │ │ └── tst.js │ │ │ │ ├── UnsafeDynamicMethodAccess │ │ │ │ │ ├── UnsafeDynamicMethodAccess.expected │ │ │ │ │ ├── UnsafeDynamicMethodAccess.qlref │ │ │ │ │ ├── example.js │ │ │ │ │ └── tst.js │ │ │ │ └── tmp.html │ │ │ ├── CWE-116 │ │ │ │ ├── DoubleEscaping │ │ │ │ │ ├── DoubleEscaping.expected │ │ │ │ │ ├── DoubleEscaping.qlref │ │ │ │ │ └── tst.js │ │ │ │ └── IncompleteSanitization │ │ │ │ │ ├── IncompleteBlacklistSanitizer.expected │ │ │ │ │ ├── IncompleteBlacklistSanitizer.ql │ │ │ │ │ ├── IncompleteHtmlAttributeSanitization.expected │ │ │ │ │ ├── IncompleteHtmlAttributeSanitization.qlref │ │ │ │ │ ├── IncompleteMultiCharacterSanitization.expected │ │ │ │ │ ├── IncompleteMultiCharacterSanitization.qlref │ │ │ │ │ ├── IncompleteSanitization.expected │ │ │ │ │ ├── IncompleteSanitization.qlref │ │ │ │ │ ├── UnsafeHtmlExpansion.expected │ │ │ │ │ ├── UnsafeHtmlExpansion.js │ │ │ │ │ ├── UnsafeHtmlExpansion.qlref │ │ │ │ │ ├── tst-multi-character-sanitization.js │ │ │ │ │ └── tst.js │ │ │ ├── CWE-117 │ │ │ │ ├── LogInjection.expected │ │ │ │ ├── LogInjection.qlref │ │ │ │ ├── logInjectionBad.js │ │ │ │ └── logInjectionGood.js │ │ │ ├── CWE-134 │ │ │ │ ├── TaintedFormatString.expected │ │ │ │ ├── TaintedFormatString.qlref │ │ │ │ └── tst.js │ │ │ ├── CWE-200 │ │ │ │ ├── FileAccessToHttp.expected │ │ │ │ ├── FileAccessToHttp.js │ │ │ │ ├── FileAccessToHttp.qlref │ │ │ │ ├── PrivateFileExposure.expected │ │ │ │ ├── PrivateFileExposure.qlref │ │ │ │ ├── bufferRead.js │ │ │ │ ├── express-send-file.js │ │ │ │ ├── fs-read-externs.js │ │ │ │ ├── googlecompiler.js │ │ │ │ ├── lib │ │ │ │ │ ├── package.json │ │ │ │ │ └── tst.js │ │ │ │ ├── private-file-exposure.js │ │ │ │ ├── readFileSync.js │ │ │ │ ├── readStreamRead.js │ │ │ │ ├── request.js │ │ │ │ ├── sentAsHeaders.js │ │ │ │ └── subfolder │ │ │ │ │ ├── package.json │ │ │ │ │ └── private-file-exposure-2.js │ │ │ ├── CWE-201 │ │ │ │ ├── PostMessageStar.expected │ │ │ │ ├── PostMessageStar.js │ │ │ │ ├── PostMessageStar.qlref │ │ │ │ ├── PostMessageStar2.js │ │ │ │ └── PostMessageStarGood.js │ │ │ ├── CWE-209 │ │ │ │ ├── StackTraceExposure.expected │ │ │ │ ├── StackTraceExposure.qlref │ │ │ │ ├── node.js │ │ │ │ └── tst.js │ │ │ ├── CWE-295 │ │ │ │ ├── DisablingCertificateValidation.expected │ │ │ │ ├── DisablingCertificateValidation.qlref │ │ │ │ └── tst.js │ │ │ ├── CWE-312 │ │ │ │ ├── BuildArtifactLeak.expected │ │ │ │ ├── BuildArtifactLeak.qlref │ │ │ │ ├── CleartextLogging.expected │ │ │ │ ├── CleartextLogging.qlref │ │ │ │ ├── CleartextStorage.expected │ │ │ │ ├── CleartextStorage.js │ │ │ │ ├── CleartextStorage.qlref │ │ │ │ ├── CleartextStorage2.js │ │ │ │ ├── CleartextStorageGood.js │ │ │ │ ├── browser.js │ │ │ │ ├── build-leaks.js │ │ │ │ ├── passwords.js │ │ │ │ ├── passwords_in_browser1.js │ │ │ │ ├── passwords_in_browser2.js │ │ │ │ ├── passwords_in_server_1.js │ │ │ │ ├── passwords_in_server_2.js │ │ │ │ ├── passwords_in_server_3.js │ │ │ │ ├── passwords_in_server_4.js │ │ │ │ ├── passwords_in_server_5.js │ │ │ │ ├── server.js │ │ │ │ ├── server2.js │ │ │ │ ├── tst-angularjs.js │ │ │ │ └── tst-webstorage.js │ │ │ ├── CWE-313 │ │ │ │ ├── PasswordInConfigurationFile.expected │ │ │ │ ├── PasswordInConfigurationFile.qlref │ │ │ │ ├── example │ │ │ │ │ └── tst.js │ │ │ │ ├── i18n │ │ │ │ │ └── de.json │ │ │ │ ├── locales │ │ │ │ │ ├── de.js │ │ │ │ │ └── de.json │ │ │ │ ├── mysql-config.json │ │ │ │ ├── package.json │ │ │ │ ├── tst.js │ │ │ │ ├── tst.raml │ │ │ │ ├── tst.yml │ │ │ │ ├── tst1.json │ │ │ │ ├── tst2.json │ │ │ │ ├── tst3.json │ │ │ │ ├── tst4.json │ │ │ │ ├── tst5.json │ │ │ │ ├── tst6.json │ │ │ │ ├── tst7.yml │ │ │ │ └── tst8.yml │ │ │ ├── CWE-327 │ │ │ │ ├── BadRandomness.expected │ │ │ │ ├── BadRandomness.qlref │ │ │ │ ├── BrokenCryptoAlgorithm.expected │ │ │ │ ├── BrokenCryptoAlgorithm.qlref │ │ │ │ ├── bad-random.js │ │ │ │ └── tst.js │ │ │ ├── CWE-338 │ │ │ │ ├── InsecureRandomness.expected │ │ │ │ ├── InsecureRandomness.qlref │ │ │ │ └── tst.js │ │ │ ├── CWE-346 │ │ │ │ ├── CorsMisconfigurationForCredentials.expected │ │ │ │ ├── CorsMisconfigurationForCredentials.qlref │ │ │ │ └── tst.js │ │ │ ├── CWE-352 │ │ │ │ ├── LICENSE │ │ │ │ ├── MissingCsrfMiddleware.expected │ │ │ │ ├── MissingCsrfMiddleware.qlref │ │ │ │ ├── MissingCsrfMiddlewareBad.js │ │ │ │ ├── MissingCsrfMiddlewareGood.js │ │ │ │ ├── MissingCsrfMiddlewareGood2.js │ │ │ │ ├── csurf_api_example.js │ │ │ │ ├── csurf_example.js │ │ │ │ ├── lusca_example.js │ │ │ │ └── unused_cookies.js │ │ │ ├── CWE-400 │ │ │ │ ├── DeepObjectResourceExhaustion │ │ │ │ │ ├── DeepObjectResourceExhaustion.expected │ │ │ │ │ ├── DeepObjectResourceExhaustion.qlref │ │ │ │ │ └── tst.js │ │ │ │ └── RemovePropertyInjection │ │ │ │ │ ├── RemotePropertyInjection.expected │ │ │ │ │ ├── RemotePropertyInjection.qlref │ │ │ │ │ ├── tst.js │ │ │ │ │ └── tstNonExpr.js │ │ │ ├── CWE-451 │ │ │ │ ├── MissingXFrameOptions.expected │ │ │ │ ├── MissingXFrameOptions.qlref │ │ │ │ ├── connect-bad.js │ │ │ │ ├── connect-good.js │ │ │ │ ├── express-bad.js │ │ │ │ ├── express-good-array-routers.js │ │ │ │ ├── express-good-library.js │ │ │ │ ├── express-good-router-router.js │ │ │ │ ├── express-good-router.js │ │ │ │ ├── express-good-use.js │ │ │ │ ├── express-good.js │ │ │ │ ├── express-good_hard.js │ │ │ │ ├── hapi-bad.js │ │ │ │ ├── hapi-good.js │ │ │ │ ├── koa-bad.js │ │ │ │ ├── koa-good.js │ │ │ │ ├── node-bad.js │ │ │ │ ├── node-good-fundecl.js │ │ │ │ ├── node-good-late-registration.js │ │ │ │ ├── node-good.js │ │ │ │ ├── node-good_hard.js │ │ │ │ ├── restify-bad.js │ │ │ │ └── restify-good.js │ │ │ ├── CWE-502 │ │ │ │ ├── UnsafeDeserialization.expected │ │ │ │ ├── UnsafeDeserialization.qlref │ │ │ │ └── tst.js │ │ │ ├── CWE-506 │ │ │ │ ├── HardcodedDataInterpretedAsCode.expected │ │ │ │ ├── HardcodedDataInterpretedAsCode.qlref │ │ │ │ ├── event-stream-orig.js │ │ │ │ ├── event-stream.js │ │ │ │ └── tst.js │ │ │ ├── CWE-601 │ │ │ │ ├── ClientSideUrlRedirect │ │ │ │ │ ├── ClientSideUrlRedirect.expected │ │ │ │ │ ├── ClientSideUrlRedirect.qlref │ │ │ │ │ ├── electron.js │ │ │ │ │ ├── externs.js │ │ │ │ │ ├── react.js │ │ │ │ │ ├── sanitizer.js │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ ├── tst.js │ │ │ │ │ ├── tst10.js │ │ │ │ │ ├── tst11.js │ │ │ │ │ ├── tst12.js │ │ │ │ │ ├── tst13.js │ │ │ │ │ ├── tst14.js │ │ │ │ │ ├── tst2.js │ │ │ │ │ ├── tst3.js │ │ │ │ │ ├── tst4.js │ │ │ │ │ ├── tst5.js │ │ │ │ │ ├── tst6.js │ │ │ │ │ ├── tst7.js │ │ │ │ │ ├── tst8.js │ │ │ │ │ ├── tst9.js │ │ │ │ │ └── typed.ts │ │ │ │ └── ServerSideUrlRedirect │ │ │ │ │ ├── ServerSideUrlRedirect.expected │ │ │ │ │ ├── ServerSideUrlRedirect.qlref │ │ │ │ │ ├── express.js │ │ │ │ │ ├── koa.js │ │ │ │ │ ├── node.js │ │ │ │ │ └── react-native.js │ │ │ ├── CWE-611 │ │ │ │ ├── Xxe.expected │ │ │ │ ├── Xxe.qlref │ │ │ │ ├── closure.js │ │ │ │ ├── domparser.js │ │ │ │ ├── expat.js │ │ │ │ ├── externs.js │ │ │ │ ├── jquery.js │ │ │ │ ├── libxml.js │ │ │ │ ├── libxml.noent.js │ │ │ │ ├── libxml.sax.js │ │ │ │ └── libxml.saxpush.js │ │ │ ├── CWE-614 │ │ │ │ ├── InsecureCookies.expected │ │ │ │ ├── InsecureCookies.qlref │ │ │ │ ├── test_cookie-session.js │ │ │ │ ├── test_express-session.js │ │ │ │ ├── test_httpserver.js │ │ │ │ ├── test_jscookie.js │ │ │ │ └── test_responseCookie.js │ │ │ ├── CWE-640 │ │ │ │ ├── HostHeaderPoisoningInEmailGeneration.expected │ │ │ │ ├── HostHeaderPoisoningInEmailGeneration.qlref │ │ │ │ └── tst.js │ │ │ ├── CWE-643 │ │ │ │ ├── XpathInjection.expected │ │ │ │ ├── XpathInjection.qlref │ │ │ │ ├── XpathInjectionBad.js │ │ │ │ ├── XpathInjectionGood.js │ │ │ │ ├── tst.js │ │ │ │ └── tst2.js │ │ │ ├── CWE-730 │ │ │ │ ├── RegExpInjection.expected │ │ │ │ ├── RegExpInjection.js │ │ │ │ ├── RegExpInjection.qlref │ │ │ │ ├── RegExpInjectionGood.js │ │ │ │ ├── ServerCrash.expected │ │ │ │ ├── ServerCrash.qlref │ │ │ │ ├── client-side.js │ │ │ │ ├── search.js │ │ │ │ ├── server-crash.js │ │ │ │ └── tst.js │ │ │ ├── CWE-754 │ │ │ │ ├── UnsafeDynamicMethodAccess.js │ │ │ │ ├── UnvalidatedDynamicMethodCall.expected │ │ │ │ ├── UnvalidatedDynamicMethodCall.js │ │ │ │ ├── UnvalidatedDynamicMethodCall.qlref │ │ │ │ ├── UnvalidatedDynamicMethodCallGood.js │ │ │ │ ├── UnvalidatedDynamicMethodCallGood2.js │ │ │ │ └── tst.js │ │ │ ├── CWE-770 │ │ │ │ ├── MissingRateLimiting.expected │ │ │ │ ├── MissingRateLimiting.js │ │ │ │ ├── MissingRateLimiting.qlref │ │ │ │ ├── MissingRateLimitingGood.js │ │ │ │ ├── rateLimit.ts │ │ │ │ ├── tst.js │ │ │ │ └── tst2.ts │ │ │ ├── CWE-776 │ │ │ │ ├── XmlBomb.expected │ │ │ │ ├── XmlBomb.qlref │ │ │ │ ├── closure.js │ │ │ │ ├── domparser.js │ │ │ │ ├── expat.js │ │ │ │ ├── externs.js │ │ │ │ ├── jquery.js │ │ │ │ ├── libxml.js │ │ │ │ ├── libxml.noent.js │ │ │ │ ├── libxml.sax.js │ │ │ │ └── libxml.saxpush.js │ │ │ ├── CWE-798 │ │ │ │ ├── HardcodedCredentials.expected │ │ │ │ ├── HardcodedCredentials.js │ │ │ │ └── HardcodedCredentials.qlref │ │ │ ├── CWE-807 │ │ │ │ ├── ConditionalBypass.expected │ │ │ │ ├── ConditionalBypass.qlref │ │ │ │ ├── DifferentKindsComparisonBypass.expected │ │ │ │ ├── DifferentKindsComparisonBypass.qlref │ │ │ │ ├── example_bypass.js │ │ │ │ ├── tst-different-kinds-comparison-bypass.js │ │ │ │ └── tst.js │ │ │ ├── CWE-829 │ │ │ │ ├── InsecureDownload.expected │ │ │ │ ├── InsecureDownload.qlref │ │ │ │ └── insecure-download.js │ │ │ ├── CWE-834 │ │ │ │ ├── LoopBoundInjection.expected │ │ │ │ ├── LoopBoundInjection.qlref │ │ │ │ ├── LoopBoundInjectionBad.js │ │ │ │ ├── LoopBoundInjectionExitBad.js │ │ │ │ ├── LoopBoundInjectionExitGood.js │ │ │ │ ├── LoopBoundInjectionGood.js │ │ │ │ ├── LoopBoundInjectionLodash.js │ │ │ │ ├── LoopBoundInjectionNested.js │ │ │ │ ├── LoopBoundInjectionObviousLengthCheck.js │ │ │ │ ├── LoopBoundInjectionObviousNullPointer.js │ │ │ │ └── LoopBoundInjectionObviousNullPointerInPreviousLoop.js │ │ │ ├── CWE-843 │ │ │ │ ├── TypeConfusionThroughParameterTampering.expected │ │ │ │ ├── TypeConfusionThroughParameterTampering.qlref │ │ │ │ └── tst.js │ │ │ ├── CWE-912 │ │ │ │ ├── HttpToFileAccess.expected │ │ │ │ ├── HttpToFileAccess.js │ │ │ │ ├── HttpToFileAccess.qlref │ │ │ │ ├── fs-writeFile-externs.js │ │ │ │ └── tst.js │ │ │ ├── CWE-915 │ │ │ │ ├── PrototypePollutingAssignment │ │ │ │ │ ├── Consistency.expected │ │ │ │ │ ├── Consistency.ql │ │ │ │ │ ├── PrototypePollutingAssignment.expected │ │ │ │ │ ├── PrototypePollutingAssignment.qlref │ │ │ │ │ └── tst.js │ │ │ │ ├── PrototypePollutingFunction │ │ │ │ │ ├── PrototypePollutingFunction.expected │ │ │ │ │ ├── PrototypePollutingFunction.qlref │ │ │ │ │ ├── examples │ │ │ │ │ │ ├── PrototypePollutingFunction.js │ │ │ │ │ │ ├── PrototypePollutingFunction_fixed.js │ │ │ │ │ │ └── PrototypePollutingFunction_fixed2.js │ │ │ │ │ ├── path-assignment.js │ │ │ │ │ └── tests.js │ │ │ │ └── PrototypePollutingMergeCall │ │ │ │ │ ├── PrototypePollutingMergeCall.expected │ │ │ │ │ ├── PrototypePollutingMergeCall.qlref │ │ │ │ │ ├── angularmerge.js │ │ │ │ │ ├── src-non-vulnerable-lodash │ │ │ │ │ ├── package.json │ │ │ │ │ └── tst.js │ │ │ │ │ └── src-vulnerable-lodash │ │ │ │ │ ├── package.json │ │ │ │ │ └── tst.js │ │ │ ├── CWE-916 │ │ │ │ ├── InsufficientPasswordHash.expected │ │ │ │ ├── InsufficientPasswordHash.qlref │ │ │ │ └── tst.js │ │ │ ├── CWE-918 │ │ │ │ ├── RequestForgery.expected │ │ │ │ ├── RequestForgery.qlref │ │ │ │ ├── clientSideParam.js │ │ │ │ └── tst.js │ │ │ └── Summaries │ │ │ │ ├── ExtractFlowStepSummaries.expected │ │ │ │ ├── ExtractFlowStepSummaries.qlref │ │ │ │ ├── ExtractSinkSummaries.expected │ │ │ │ ├── ExtractSinkSummaries.qlref │ │ │ │ ├── ExtractSourceSummaries.expected │ │ │ │ ├── ExtractSourceSummaries.qlref │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ ├── Statements │ │ │ ├── DanglingElse │ │ │ │ ├── DanglingElse.expected │ │ │ │ ├── DanglingElse.qlref │ │ │ │ └── tst.js │ │ │ ├── EphemeralLoop │ │ │ │ ├── EphemeralLoop.expected │ │ │ │ ├── EphemeralLoop.qlref │ │ │ │ ├── emscripten.js │ │ │ │ └── tst.js │ │ │ ├── IgnoreArrayResult │ │ │ │ ├── IgnoreArrayResult.expected │ │ │ │ ├── IgnoreArrayResult.qlref │ │ │ │ └── tst.js │ │ │ ├── ImplicitReturn │ │ │ │ ├── ImplicitReturn.expected │ │ │ │ ├── ImplicitReturn.qlref │ │ │ │ └── tst.js │ │ │ ├── InconsistentLoopOrientation │ │ │ │ ├── InconsistentLoopOrientation.expected │ │ │ │ ├── InconsistentLoopOrientation.qlref │ │ │ │ └── tst.js │ │ │ ├── InconsistentReturn │ │ │ │ ├── InconsistentReturn.expected │ │ │ │ ├── InconsistentReturn.qlref │ │ │ │ └── tst.js │ │ │ ├── LabelInCase │ │ │ │ ├── LabelInCase.expected │ │ │ │ ├── LabelInCase.qlref │ │ │ │ └── nonCaseLabelInSwitch.js │ │ │ ├── LoopIterationSkippedDueToShifting │ │ │ │ ├── LoopIterationSkippedDueToShifting.expected │ │ │ │ ├── LoopIterationSkippedDueToShifting.qlref │ │ │ │ └── tst.js │ │ │ ├── MisleadingIndentationAfterControlStmt │ │ │ │ ├── MisleadingIndentationAfterControlStmt.expected │ │ │ │ ├── MisleadingIndentationAfterControlStmt.qlref │ │ │ │ ├── awe.js │ │ │ │ ├── tst.html │ │ │ │ └── tst.js │ │ │ ├── NestedLoopsSameVariable │ │ │ │ ├── NestedLoopsSameVariable.expected │ │ │ │ ├── NestedLoopsSameVariable.qlref │ │ │ │ └── tst.js │ │ │ ├── ReturnAssignsLocal │ │ │ │ ├── ReturnAssignsLocal.expected │ │ │ │ ├── ReturnAssignsLocal.qlref │ │ │ │ └── tst.js │ │ │ ├── ReturnOutsideFunction │ │ │ │ ├── ReturnOutsideFunction.expected │ │ │ │ ├── ReturnOutsideFunction.qlref │ │ │ │ ├── node.js │ │ │ │ ├── tst.html │ │ │ │ └── tst.js │ │ │ ├── SuspiciousUnusedLoopIterationVariable │ │ │ │ ├── SuspiciousUnusedLoopIterationVariable.expected │ │ │ │ ├── SuspiciousUnusedLoopIterationVariable.qlref │ │ │ │ └── tst.js │ │ │ ├── UnreachableStatement │ │ │ │ ├── UnreachableStatement.expected │ │ │ │ ├── UnreachableStatement.qlref │ │ │ │ ├── emptyclass.js │ │ │ │ ├── tst.js │ │ │ │ └── typealias.ts │ │ │ ├── UseOfReturnlessFunction │ │ │ │ ├── UseOfReturnlessFunction.expected │ │ │ │ ├── UseOfReturnlessFunction.qlref │ │ │ │ ├── tsconfig.json │ │ │ │ ├── tst.html │ │ │ │ ├── tst.js │ │ │ │ └── tst2.ts │ │ │ ├── UselessComparisonTest │ │ │ │ ├── UselessComparisonTest.expected │ │ │ │ ├── UselessComparisonTest.qlref │ │ │ │ ├── constant.js │ │ │ │ ├── defaults.js │ │ │ │ ├── example.js │ │ │ │ ├── exampleGood.js │ │ │ │ ├── implicitReturn.js │ │ │ │ └── tst.js │ │ │ └── UselessConditional │ │ │ │ ├── UselessConditional.expected │ │ │ │ ├── UselessConditional.js │ │ │ │ ├── UselessConditional.qlref │ │ │ │ ├── UselessConditionalGood.js │ │ │ │ └── options │ │ ├── Vue │ │ │ ├── ArrowMethodOnVueInstance.expected │ │ │ ├── ArrowMethodOnVueInstance.qlref │ │ │ └── tst.js │ │ ├── WrongExtensionJSON │ │ │ ├── WrongExtensionJSON.expected │ │ │ ├── WrongExtensionJSON.qlref │ │ │ ├── tst1.js │ │ │ ├── tst2.js │ │ │ └── tst3.json │ │ ├── definitions │ │ │ ├── a.js │ │ │ ├── b.js │ │ │ ├── c.js │ │ │ ├── client.ts │ │ │ ├── d.js │ │ │ ├── definitions.expected │ │ │ ├── definitions.qlref │ │ │ ├── m.js │ │ │ ├── tsconfig.json │ │ │ ├── tslib.ts │ │ │ └── tst.js │ │ ├── external │ │ │ ├── DuplicateFunction │ │ │ │ ├── DuplicateFunction.expected │ │ │ │ ├── DuplicateFunction.qlref │ │ │ │ └── d │ │ │ │ │ └── tst.js │ │ │ ├── DuplicateToplevel │ │ │ │ ├── DuplicateToplevel.expected │ │ │ │ ├── DuplicateToplevel.qlref │ │ │ │ ├── a.js │ │ │ │ ├── b.js │ │ │ │ ├── c.js │ │ │ │ ├── d.js │ │ │ │ └── e.js │ │ │ ├── SimilarFunction │ │ │ │ ├── SimilarFunction.expected │ │ │ │ ├── SimilarFunction.qlref │ │ │ │ └── tst.js │ │ │ └── SimilarToplevel │ │ │ │ ├── SimilarToplevel.expected │ │ │ │ ├── SimilarToplevel.qlref │ │ │ │ ├── a.js │ │ │ │ └── b.js │ │ └── filters │ │ │ └── ClassifyFiles │ │ │ ├── 01.chapter-about-things.js │ │ │ ├── 1.js │ │ │ ├── AlmostManyElementsOnLine.html │ │ │ ├── AutoRest.js │ │ │ ├── ClassifyFiles.expected │ │ │ ├── ClassifyFiles.qlref │ │ │ ├── CodeGenerator.expected │ │ │ ├── CodeGenerator.ql │ │ │ ├── LICENSE-jquery-datatables.txt │ │ │ ├── ManyElementsOnLine.html │ │ │ ├── MyComponent.vue │ │ │ ├── README │ │ │ ├── __mocks__ │ │ │ └── test.js │ │ │ ├── __tests__ │ │ │ └── test.js │ │ │ ├── ai.1.2.3-build0123.js │ │ │ ├── bundle-directive.js │ │ │ ├── data.js │ │ │ ├── doxygen-generated.html │ │ │ ├── etherpad.html │ │ │ ├── exported-data.js │ │ │ ├── htmltidy.html │ │ │ ├── implementation.js │ │ │ ├── implementation.spec.js │ │ │ ├── implementation.test.js │ │ │ ├── jison-lex.js │ │ │ ├── jison.js │ │ │ ├── jquery-datatables.js │ │ │ ├── jquery-jstree.js │ │ │ ├── jquery-snippet.js │ │ │ ├── json-like.js │ │ │ ├── jsx-old.js │ │ │ ├── jsx.js │ │ │ ├── multi-part-bundle.html │ │ │ ├── multi-part-bundle.js │ │ │ ├── multiple-licenses-2.js │ │ │ ├── multiple-licenses-3.js │ │ │ ├── multiple-licenses-4.js │ │ │ ├── multiple-licenses.js │ │ │ ├── nonbmp.js │ │ │ ├── not-multiple-licenses.js │ │ │ ├── not-unannotated-externs-1.js │ │ │ ├── not-unannotated-externs-2.js │ │ │ ├── not-unannotated-externs-3.js │ │ │ ├── opal-test.js │ │ │ ├── options │ │ │ ├── orgmode.html │ │ │ ├── pandoc.html │ │ │ ├── peg-js.js │ │ │ ├── polymer.html │ │ │ ├── purs-bundle.js │ │ │ ├── purs.js │ │ │ ├── short-variables.js │ │ │ ├── single-license.js │ │ │ ├── some-template.html │ │ │ ├── templ.js │ │ │ ├── textmate.html │ │ │ ├── tmpl.html │ │ │ ├── tmpl2.html │ │ │ ├── tst-min.js │ │ │ ├── tst.browserify.js │ │ │ ├── tst.dart.js │ │ │ ├── tst.min.js │ │ │ ├── tst_min.js │ │ │ ├── twitter-text.js │ │ │ ├── twitter_text.js │ │ │ ├── unannotated-externs-1.js │ │ │ ├── unannotated-externs-2.js │ │ │ ├── unannotated-externs-3.js │ │ │ ├── unannotated-externs-4.js │ │ │ ├── unannotated-externs-5.js │ │ │ ├── unannotated-externs-6.js │ │ │ └── unannotated-externs-7.js │ │ ├── testUtilities │ │ └── ConsistencyChecking.qll │ │ └── tutorials │ │ ├── Analyzing data flow in JavaScript │ │ ├── Global data flow │ │ │ ├── query1.expected │ │ │ ├── query1.ql │ │ │ ├── query2.expected │ │ │ ├── query2.ql │ │ │ ├── query3.expected │ │ │ ├── query3.ql │ │ │ ├── query4.expected │ │ │ ├── query4.ql │ │ │ ├── query5.expected │ │ │ ├── query5.ql │ │ │ ├── test1.js │ │ │ ├── test2.js │ │ │ ├── test3.js │ │ │ └── test4.js │ │ └── Local data flow │ │ │ ├── query1.expected │ │ │ ├── query1.ql │ │ │ ├── query2.expected │ │ │ ├── query2.ql │ │ │ ├── query3.expected │ │ │ ├── query3.ql │ │ │ ├── query4.expected │ │ │ ├── query4.ql │ │ │ └── test.js │ │ ├── Introducing the JavaScript libraries │ │ ├── m.js │ │ ├── options │ │ ├── query1.qll │ │ ├── query10.qll │ │ ├── query11.qll │ │ ├── query12.qll │ │ ├── query13.qll │ │ ├── query14.qll │ │ ├── query15.qll │ │ ├── query17.qll │ │ ├── query18.qll │ │ ├── query19.qll │ │ ├── query2.qll │ │ ├── query20.qll │ │ ├── query21.qll │ │ ├── query3.qll │ │ ├── query4.qll │ │ ├── query5.qll │ │ ├── query6.qll │ │ ├── query7.qll │ │ ├── query8.qll │ │ ├── query9.qll │ │ ├── tests.expected │ │ ├── tests.ql │ │ └── tst.js │ │ ├── README │ │ ├── Validating RAML-based APIs │ │ ├── HTTP.qll │ │ ├── MissingResponseSpecification.expected │ │ ├── MissingResponseSpecification.ql │ │ ├── Osprey.qll │ │ ├── RAML.qll │ │ ├── query1.expected │ │ ├── query1.ql │ │ ├── query2.expected │ │ ├── query2.ql │ │ ├── query3.expected │ │ ├── query3.ql │ │ ├── query4.expected │ │ ├── query4.ql │ │ └── robonode │ │ │ ├── Gruntfile.js │ │ │ ├── LICENSE │ │ │ └── src │ │ │ ├── addCRC.js │ │ │ ├── app.js │ │ │ ├── assets │ │ │ └── raml │ │ │ │ └── api.raml │ │ │ ├── command.js │ │ │ ├── populateMotionData.js │ │ │ └── robot.js │ │ └── Writing QL queries - JavaScript │ │ ├── basic.expected │ │ ├── basic.ql │ │ ├── refined.expected │ │ ├── refined.ql │ │ └── tst.js └── upgrades │ ├── 03c078a7e6eec294f1457b3d20f9fec4427cb4af │ ├── old.dbscheme │ ├── semmlecode.javascript.dbscheme │ └── upgrade.properties │ ├── 2dc7a0389827d235763a3748aba73c2d4a677b15 │ ├── old.dbscheme │ ├── semmlecode.javascript.dbscheme │ └── upgrade.properties │ ├── 480c0c6f68fac1441d25defa4562f61a5f968d11 │ ├── hasLocation.ql │ ├── old.dbscheme │ ├── semmlecode.javascript.dbscheme │ ├── upgrade.properties │ └── yaml_locations.ql │ ├── 4d64c2a745b5b200af1d3db2958c255032692be9 │ ├── old.dbscheme │ ├── semmlecode.javascript.dbscheme │ └── upgrade.properties │ ├── 4e26462d907d2cfb7ec8a08f8ccdf40732038ef8 │ ├── old.dbscheme │ ├── semmlecode.javascript.dbscheme │ └── upgrade.properties │ ├── 4f136cb93608918a866f46bfe75fd7138f20bd5e │ ├── old.dbscheme │ ├── semmlecode.javascript.dbscheme │ └── upgrade.properties │ ├── 56b74a6808d3fe01835d454c25ea8dc3da1a8fdf │ ├── old.dbscheme │ ├── semmlecode.javascript.dbscheme │ └── upgrade.properties │ ├── 5a5adbf98dce747760ad1b8d0b9d27b53934e17c │ ├── old.dbscheme │ ├── semmlecode.javascript.dbscheme │ └── upgrade.properties │ ├── 6486c78671c40e4dc07932d806366f09051bb399 │ ├── old.dbscheme │ ├── semmlecode.javascript.dbscheme │ └── upgrade.properties │ ├── 64ea4d71964ad03f6604cf49f4869163dacbab66 │ ├── hasLocation.ql │ ├── json_locations.ql │ ├── old.dbscheme │ ├── semmlecode.javascript.dbscheme │ └── upgrade.properties │ ├── 7eead88269b20e9d61f61cd2291affb737dc831e │ ├── isES2015Module.ql │ ├── old.dbscheme │ ├── semmlecode.javascript.dbscheme │ └── upgrade.properties │ ├── 81e6619c681f7844e8ddc38db102e75b428c830c │ ├── old.dbscheme │ ├── semmlecode.javascript.dbscheme │ └── upgrade.properties │ ├── 874ebfcd4d2fd346c10ebec145466d9071d78606 │ ├── old.dbscheme │ ├── semmlecode.javascript.dbscheme │ └── upgrade.properties │ ├── 930898a4fe07cb48de46800904922ca118b31e50 │ ├── old.dbscheme │ ├── semmlecode.javascript.dbscheme │ ├── tuple_type_rest_index.ql │ └── upgrade.properties │ ├── 96b0a386b6fb8da2b5f2514f26154a10c906f9c5 │ ├── old.dbscheme │ ├── semmlecode.javascript.dbscheme │ └── upgrade.properties │ ├── 9a70dfc47d84e32ee3758371acb55ab3f905abdc │ ├── old.dbscheme │ ├── semmlecode.javascript.dbscheme │ └── upgrade.properties │ ├── ab0dab3b55b386f366e9904e10139edebca0495c │ ├── old.dbscheme │ ├── semmlecode.javascript.dbscheme │ └── upgrade.properties │ ├── b9202b62ec8a0304316515941cb45646c6dd6fdd │ ├── old.dbscheme │ ├── semmlecode.javascript.dbscheme │ └── upgrade.properties │ ├── c73fbfca57f3d593b9ff50c6aa3a886d6888efec │ ├── old.dbscheme │ ├── semmlecode.javascript.dbscheme │ └── upgrade.properties │ ├── c8859f3725d4b070a877f8792214582d517c8a9b │ ├── old.dbscheme │ ├── semmlecode.javascript.dbscheme │ ├── semmlecode.javascript.dbscheme.stats │ ├── toplevel_parent_xml_node.ql │ └── upgrade.properties │ ├── dad09eeeff5cf8c9c2b674d5053c63ab44e091df │ ├── old.dbscheme │ ├── semmlecode.javascript.dbscheme │ └── upgrade.properties │ ├── e2173e83ac503be4d7c18472a2d7ce636724510c │ ├── old.dbscheme │ ├── semmlecode.javascript.dbscheme │ └── upgrade.properties │ ├── eee0408097f0b1572b871ee7cc0ecad1aaa795e7 │ ├── old.dbscheme │ ├── semmlecode.javascript.dbscheme │ └── upgrade.properties │ ├── eee08932d5217772961acb1bd1841cc5bb9df91b │ ├── old.dbscheme │ ├── semmlecode.javascript.dbscheme │ └── upgrade.properties │ └── qlpack.yml ├── misc ├── emacs │ ├── README.md │ ├── dbscheme-mode.el │ └── ql-mode-base.el ├── legacy-support │ ├── cpp │ │ └── qlpack.yml │ ├── csharp │ │ └── qlpack.yml │ ├── java │ │ └── qlpack.yml │ ├── javascript │ │ └── qlpack.yml │ └── python │ │ └── qlpack.yml ├── scripts │ ├── generate-code-scanning-query-list.py │ └── pre-commit ├── suite-helpers │ ├── code-scanning-selectors.yml │ ├── lgtm-displayed-only.yml │ ├── lgtm-selectors.yml │ ├── qlpack.yml │ ├── security-and-quality-selectors.yml │ └── security-extended-selectors.yml └── vim │ ├── README.md │ ├── ftdetect │ └── ql.vim │ └── syntax │ └── ql.vim └── python ├── .vscode └── ql.code-snippets ├── change-notes ├── 2020-11-25-better-open-models.md ├── 2020-12-03-model-realpath-abspath.md ├── 2020-12-04-django-class-based-view-handlers.md ├── 2020-12-08-stdlib-http-source-modeling.md ├── 2020-12-09-add-sqlite3-model.md ├── 2020-12-14-add-PyMySQL-model.md ├── 2020-12-21-django-with-unknown-route.md ├── 2020-12-22-tornado-source-modeling.md ├── 2021-01-12-flask-class-based-view-handlers.md ├── 2021-01-19-port-url-redirect-query.md ├── 2021-02-02-port-weak-crypto-key-query.md ├── 2021-02-03-flask-add-blueprint-modeling.md ├── 2021-02-04-api-graphs.md ├── 2021-02-10-django-improvements.md ├── 2021-02-10-yaml-more-loading-functions.md ├── 2021-02-12-django-get_redirect_url.md ├── 2021-02-18-type-backtrackers.md ├── 2021-02-23-port-bind-to-all-interfaces.md ├── 2021-02-23-port-insecure-default-protocol.md ├── 2021-02-24-port-flask-debug.md ├── 2021-02-25-port-stactrace-exposure-query.md ├── 2021-03-01-fluent-interface-data-flow.md ├── 2021-03-11-api-graph-builtins.md ├── 2021-03-18-yaml-handle-C-based-loaders.md ├── 2021-03-22-getacall-callcfgnode.md ├── 2021-03-23-django-forms-fields-classes.md └── 2021-03-25-remove-legacy.md ├── config └── suites │ └── lgtm │ ├── python-alerts-lgtm │ ├── python-lgtm │ ├── python-metrics-lgtm │ ├── python-queries-lgtm │ └── python2-lgtm ├── ql ├── examples │ ├── qlpack.yml │ ├── queries.xml │ └── snippets │ │ ├── backticks.ql │ │ ├── builtin_object.ql │ │ ├── call.ql │ │ ├── catch_exception.ql │ │ ├── conditional_expression.ql │ │ ├── elif.ql │ │ ├── emptyblock.ql │ │ ├── emptythen.ql │ │ ├── eq_true.ql │ │ ├── equalitystmt.ql │ │ ├── extend_class.ql │ │ ├── filename.ql │ │ ├── generator.ql │ │ ├── integer_literal.ql │ │ ├── method_call.ql │ │ ├── mutualrecursion.ql │ │ ├── new_instance.ql │ │ ├── override_method.ql │ │ ├── print.ql │ │ ├── private_access.ql │ │ ├── raise_exception.ql │ │ ├── raw_string.ql │ │ ├── recursion.ql │ │ ├── singlequotestring.ql │ │ ├── store_none.ql │ │ ├── todocomment.ql │ │ ├── too_many_params.ql │ │ └── tryfinally.ql ├── src │ ├── .project │ ├── .qlpath │ ├── .vs │ │ └── VSWorkspaceSettings.json │ ├── Classes │ │ ├── ClassAttributes.qll │ │ ├── ConflictingAttributesInBaseClasses.py │ │ ├── ConflictingAttributesInBaseClasses.qhelp │ │ ├── ConflictingAttributesInBaseClasses.ql │ │ ├── ConflictingAttributesInBaseClasses_Fixed.py │ │ ├── DefineEqualsWhenAddingAttributes.py │ │ ├── DefineEqualsWhenAddingAttributes.qhelp │ │ ├── DefineEqualsWhenAddingAttributes.ql │ │ ├── Equality.qll │ │ ├── EqualsOrHash.py │ │ ├── EqualsOrHash.qhelp │ │ ├── EqualsOrHash.ql │ │ ├── EqualsOrNotEquals.py │ │ ├── EqualsOrNotEquals.qhelp │ │ ├── EqualsOrNotEquals.ql │ │ ├── IncompleteOrdering.py │ │ ├── IncompleteOrdering.qhelp │ │ ├── IncompleteOrdering.ql │ │ ├── InconsistentMRO.py │ │ ├── InconsistentMRO.qhelp │ │ ├── InconsistentMRO.ql │ │ ├── InitCallsSubclassMethod.py │ │ ├── InitCallsSubclassMethod.qhelp │ │ ├── InitCallsSubclassMethod.ql │ │ ├── MaybeUndefinedClassAttribute.py │ │ ├── MaybeUndefinedClassAttribute.qhelp │ │ ├── MaybeUndefinedClassAttribute.ql │ │ ├── MethodCallOrder.qll │ │ ├── MissingCallToDel.py │ │ ├── MissingCallToDel.qhelp │ │ ├── MissingCallToDel.ql │ │ ├── MissingCallToInit.py │ │ ├── MissingCallToInit.qhelp │ │ ├── MissingCallToInit.ql │ │ ├── MutatingDescriptor.py │ │ ├── MutatingDescriptor.qhelp │ │ ├── MutatingDescriptor.ql │ │ ├── MutatingDescriptorFixed.py │ │ ├── OverwritingAttributeInSuperClass.py │ │ ├── OverwritingAttributeInSuperClass.qhelp │ │ ├── OverwritingAttributeInSuperClass.ql │ │ ├── PropertyInOldStyleClass.py │ │ ├── PropertyInOldStyleClass.qhelp │ │ ├── PropertyInOldStyleClass.ql │ │ ├── ShouldBeContextManager.py │ │ ├── ShouldBeContextManager.qhelp │ │ ├── ShouldBeContextManager.ql │ │ ├── SlotsInOldStyleClass.py │ │ ├── SlotsInOldStyleClass.qhelp │ │ ├── SlotsInOldStyleClass.ql │ │ ├── SubclassShadowing.py │ │ ├── SubclassShadowing.qhelp │ │ ├── SubclassShadowing.ql │ │ ├── SuperInOldStyleClass.py │ │ ├── SuperInOldStyleClass.qhelp │ │ ├── SuperInOldStyleClass.ql │ │ ├── SuperclassDelCalledMultipleTimes.py │ │ ├── SuperclassDelCalledMultipleTimes.qhelp │ │ ├── SuperclassDelCalledMultipleTimes.ql │ │ ├── SuperclassDelCalledMultipleTimes2.py │ │ ├── SuperclassInitCalledMultipleTimes.py │ │ ├── SuperclassInitCalledMultipleTimes.qhelp │ │ ├── SuperclassInitCalledMultipleTimes.ql │ │ ├── SuperclassInitCalledMultipleTimes2.py │ │ ├── UndefinedClassAttribute.py │ │ ├── UndefinedClassAttribute.qhelp │ │ ├── UndefinedClassAttribute.ql │ │ ├── UselessClass.py │ │ ├── UselessClass.qhelp │ │ ├── UselessClass.ql │ │ ├── WrongNameForArgumentInClassInstantiation.py │ │ ├── WrongNameForArgumentInClassInstantiation.qhelp │ │ ├── WrongNameForArgumentInClassInstantiation.ql │ │ ├── WrongNumberArgumentsInClassInstantiation.py │ │ ├── WrongNumberArgumentsInClassInstantiation.qhelp │ │ └── WrongNumberArgumentsInClassInstantiation.ql │ ├── Customizations.qll │ ├── Exceptions │ │ ├── CatchingBaseException.py │ │ ├── CatchingBaseException.qhelp │ │ ├── CatchingBaseException.ql │ │ ├── EmptyExcept.py │ │ ├── EmptyExcept.qhelp │ │ ├── EmptyExcept.ql │ │ ├── IllegalExceptionHandlerType.py │ │ ├── IllegalExceptionHandlerType.qhelp │ │ ├── IllegalExceptionHandlerType.ql │ │ ├── IllegalRaise.py │ │ ├── IllegalRaise.qhelp │ │ ├── IllegalRaise.ql │ │ ├── IncorrectExceptOrder.py │ │ ├── IncorrectExceptOrder.qhelp │ │ ├── IncorrectExceptOrder.ql │ │ ├── NotImplemented.py │ │ ├── NotImplemented.qll │ │ ├── NotImplementedIsNotAnException.qhelp │ │ ├── NotImplementedIsNotAnException.ql │ │ ├── Raising.qll │ │ ├── RaisingTuple.py │ │ ├── RaisingTuple.qhelp │ │ ├── RaisingTuple.ql │ │ ├── RaisingTuple2.py │ │ ├── UnguardedNextInGenerator.qhelp │ │ ├── UnguardedNextInGenerator.ql │ │ ├── UnguardedNextInGeneratorBad.py │ │ └── UnguardedNextInGeneratorGood.py │ ├── Expressions │ │ ├── CallArgs.qll │ │ ├── CallToSuperWrongClass.py │ │ ├── CallToSuperWrongClass.qhelp │ │ ├── CallToSuperWrongClass.ql │ │ ├── CompareConstants.py │ │ ├── CompareConstants.qhelp │ │ ├── CompareConstants.ql │ │ ├── CompareIdenticalValues.py │ │ ├── CompareIdenticalValues.qhelp │ │ ├── CompareIdenticalValues.ql │ │ ├── CompareIdenticalValuesMissingSelf.py │ │ ├── CompareIdenticalValuesMissingSelf.qhelp │ │ ├── CompareIdenticalValuesMissingSelf.ql │ │ ├── Comparisons │ │ │ ├── UselessComparisonTest.py │ │ │ ├── UselessComparisonTest.qhelp │ │ │ └── UselessComparisonTest.ql │ │ ├── ContainsNonContainer.py │ │ ├── ContainsNonContainer.qhelp │ │ ├── ContainsNonContainer.ql │ │ ├── DuplicateKeyInDictionaryLiteral.py │ │ ├── DuplicateKeyInDictionaryLiteral.qhelp │ │ ├── DuplicateKeyInDictionaryLiteral.ql │ │ ├── EqualsNone.py │ │ ├── EqualsNone.qhelp │ │ ├── EqualsNone.ql │ │ ├── ExpectedMappingForFormatString.py │ │ ├── ExpectedMappingForFormatString.qhelp │ │ ├── ExpectedMappingForFormatString.ql │ │ ├── ExplicitCallToDel.py │ │ ├── ExplicitCallToDel.qhelp │ │ ├── ExplicitCallToDel.ql │ │ ├── Formatting │ │ │ ├── AdvancedFormatting.qll │ │ │ ├── MixedExplicitImplicitIn3101Format.py │ │ │ ├── MixedExplicitImplicitIn3101Format.qhelp │ │ │ ├── MixedExplicitImplicitIn3101Format.ql │ │ │ ├── UnusedArgumentIn3101Format.py │ │ │ ├── UnusedArgumentIn3101Format.qhelp │ │ │ ├── UnusedArgumentIn3101Format.ql │ │ │ ├── UnusedNamedArgumentIn3101Format.py │ │ │ ├── UnusedNamedArgumentIn3101Format.qhelp │ │ │ ├── UnusedNamedArgumentIn3101Format.ql │ │ │ ├── WrongNameInArgumentsFor3101Format.py │ │ │ ├── WrongNameInArgumentsFor3101Format.qhelp │ │ │ ├── WrongNameInArgumentsFor3101Format.ql │ │ │ ├── WrongNumberArgumentsFor3101Format.py │ │ │ ├── WrongNumberArgumentsFor3101Format.qhelp │ │ │ └── WrongNumberArgumentsFor3101Format.ql │ │ ├── HashedButNoHash.py │ │ ├── HashedButNoHash.qhelp │ │ ├── HashedButNoHash.ql │ │ ├── IncorrectComparisonUsingIs.py │ │ ├── IncorrectComparisonUsingIs.qhelp │ │ ├── IncorrectComparisonUsingIs.ql │ │ ├── IsComparisons.qll │ │ ├── NonCallableCalled.py │ │ ├── NonCallableCalled.qhelp │ │ ├── NonCallableCalled.ql │ │ ├── NonPortableComparisonUsingIs.py │ │ ├── NonPortableComparisonUsingIs.qhelp │ │ ├── NonPortableComparisonUsingIs.ql │ │ ├── RedundantComparison.qll │ │ ├── Regex │ │ │ ├── BackspaceEscape.py │ │ │ ├── BackspaceEscape.qhelp │ │ │ ├── BackspaceEscape.ql │ │ │ ├── DuplicateCharacterInSet.py │ │ │ ├── DuplicateCharacterInSet.qhelp │ │ │ ├── DuplicateCharacterInSet.ql │ │ │ ├── MissingPartSpecialGroup.py │ │ │ ├── MissingPartSpecialGroup.qhelp │ │ │ ├── MissingPartSpecialGroup.ql │ │ │ ├── UnmatchableCaret.py │ │ │ ├── UnmatchableCaret.qhelp │ │ │ ├── UnmatchableCaret.ql │ │ │ ├── UnmatchableDollar.py │ │ │ ├── UnmatchableDollar.qhelp │ │ │ └── UnmatchableDollar.ql │ │ ├── TruncatedDivision.py │ │ ├── TruncatedDivision.qhelp │ │ ├── TruncatedDivision.ql │ │ ├── TruncatedDivisionCorrect.py │ │ ├── UnintentionalImplicitStringConcatenation.py │ │ ├── UnintentionalImplicitStringConcatenation.qhelp │ │ ├── UnintentionalImplicitStringConcatenation.ql │ │ ├── UnnecessaryLambda.py │ │ ├── UnnecessaryLambda.qhelp │ │ ├── UnnecessaryLambda.ql │ │ ├── UnnecessaryLambdaFix.py │ │ ├── UnsupportedFormatCharacter.py │ │ ├── UnsupportedFormatCharacter.qhelp │ │ ├── UnsupportedFormatCharacter.ql │ │ ├── UseofApply.qhelp │ │ ├── UseofApply.ql │ │ ├── UseofInput.qhelp │ │ ├── UseofInput.ql │ │ ├── WrongNameForArgumentInCall.qhelp │ │ ├── WrongNameForArgumentInCall.ql │ │ ├── WrongNumberArgumentsForFormat.py │ │ ├── WrongNumberArgumentsForFormat.qhelp │ │ ├── WrongNumberArgumentsForFormat.ql │ │ ├── WrongNumberArgumentsInCall.qhelp │ │ └── WrongNumberArgumentsInCall.ql │ ├── Filters │ │ └── ClassifyFiles.ql │ ├── Functions │ │ ├── ConsistentReturns.py │ │ ├── ConsistentReturns.qhelp │ │ ├── ConsistentReturns.ql │ │ ├── DeprecatedSliceMethod.qhelp │ │ ├── DeprecatedSliceMethod.ql │ │ ├── ExplicitReturnInInit.py │ │ ├── ExplicitReturnInInit.qhelp │ │ ├── ExplicitReturnInInit.ql │ │ ├── IncorrectRaiseInSpecialMethod.py │ │ ├── IncorrectRaiseInSpecialMethod.qhelp │ │ ├── IncorrectRaiseInSpecialMethod.ql │ │ ├── IncorrectRaiseInSpecialMethod2.py │ │ ├── IncorrectRaiseInSpecialMethod3.py │ │ ├── IncorrectlyOverriddenMethod.qhelp │ │ ├── IncorrectlyOverriddenMethod.ql │ │ ├── IncorrectlySpecifiedOverriddenMethod.qhelp │ │ ├── IncorrectlySpecifiedOverriddenMethod.ql │ │ ├── InitIsGenerator.py │ │ ├── InitIsGenerator.qhelp │ │ ├── InitIsGenerator.ql │ │ ├── IterReturnsNonIterator.py │ │ ├── IterReturnsNonIterator.qhelp │ │ ├── IterReturnsNonIterator.ql │ │ ├── IterReturnsNonSelf.py │ │ ├── IterReturnsNonSelf.qhelp │ │ ├── IterReturnsNonSelf.ql │ │ ├── ModificationOfParameterWithDefault.py │ │ ├── ModificationOfParameterWithDefault.qhelp │ │ ├── ModificationOfParameterWithDefault.ql │ │ ├── NonCls.py │ │ ├── NonCls.qhelp │ │ ├── NonCls.ql │ │ ├── NonSelf.py │ │ ├── NonSelf.qhelp │ │ ├── NonSelf.ql │ │ ├── OverlyComplexDelMethod.py │ │ ├── OverlyComplexDelMethod.qhelp │ │ ├── OverlyComplexDelMethod.ql │ │ ├── ReturnConsistentTupleSizes.py │ │ ├── ReturnConsistentTupleSizes.qhelp │ │ ├── ReturnConsistentTupleSizes.ql │ │ ├── ReturnValueIgnored.py │ │ ├── ReturnValueIgnored.qhelp │ │ ├── ReturnValueIgnored.ql │ │ ├── SignatureIncorrectlyOverriddenMethod.py │ │ ├── SignatureOverriddenMethod.py │ │ ├── SignatureOverriddenMethod.qhelp │ │ ├── SignatureOverriddenMethod.ql │ │ ├── SignatureOverridingMethod.py │ │ ├── SignatureSpecialMethods.py │ │ ├── SignatureSpecialMethods.qhelp │ │ ├── SignatureSpecialMethods.ql │ │ ├── UseImplicitNoneReturnValue.py │ │ ├── UseImplicitNoneReturnValue.qhelp │ │ └── UseImplicitNoneReturnValue.ql │ ├── Imports │ │ ├── Cyclic.qll │ │ ├── CyclicImport.qhelp │ │ ├── CyclicImport.ql │ │ ├── DeprecatedModule.qhelp │ │ ├── DeprecatedModule.ql │ │ ├── EncodingError.qhelp │ │ ├── EncodingError.ql │ │ ├── FromImportOfMutableAttribute.qhelp │ │ ├── FromImportOfMutableAttribute.ql │ │ ├── ImportOnTwoLines.py │ │ ├── ImportShadowedByLoopVar.qhelp │ │ ├── ImportShadowedByLoopVar.ql │ │ ├── ImportStarUsed.qhelp │ │ ├── ImportStarUsed.ql │ │ ├── ImportTwiceOnALine.py │ │ ├── ImportandImportFrom.py │ │ ├── ImportandImportFrom.qhelp │ │ ├── ImportandImportFrom.ql │ │ ├── Imports.qhelp │ │ ├── Imports.ql │ │ ├── ModuleImportsItself.py │ │ ├── ModuleImportsItself.qhelp │ │ ├── ModuleImportsItself.ql │ │ ├── ModuleImportsItselfFix.py │ │ ├── ModuleLevelCyclicImport.qhelp │ │ ├── ModuleLevelCyclicImport.ql │ │ ├── MultipleImports.py │ │ ├── MultipleImports.qhelp │ │ ├── MultipleImports.ql │ │ ├── SyntaxError.qhelp │ │ ├── SyntaxError.ql │ │ ├── UnintentionalImport.py │ │ ├── UnintentionalImport.qhelp │ │ ├── UnintentionalImport.ql │ │ ├── UnusedImport.qhelp │ │ ├── UnusedImport.ql │ │ ├── from_import.py │ │ ├── from_import_fixed.py │ │ └── redirect.py │ ├── Lexical │ │ ├── CommentedOutCode.py │ │ ├── CommentedOutCode.qhelp │ │ ├── CommentedOutCode.ql │ │ ├── CommentedOutCode.qll │ │ ├── CommentedOutCodeExample.inc.qhelp │ │ ├── CommentedOutCodeMetricOverview.inc.qhelp │ │ ├── CommentedOutCodeQuery.inc.qhelp │ │ ├── CommentedOutCodeReferences.inc.qhelp │ │ ├── FCommentedOutCode.qhelp │ │ ├── FCommentedOutCode.ql │ │ ├── OldOctalLiteral.py │ │ ├── OldOctalLiteral.qhelp │ │ ├── OldOctalLiteral.ql │ │ ├── ToDoComment.py │ │ ├── ToDoComment.qhelp │ │ └── ToDoComment.ql │ ├── Metrics │ │ ├── CLinesOfCode.qhelp │ │ ├── CLinesOfCode.ql │ │ ├── ClassAfferentCoupling.qhelp │ │ ├── ClassAfferentCoupling.ql │ │ ├── ClassEfferentCoupling.py │ │ ├── ClassEfferentCoupling.qhelp │ │ ├── ClassEfferentCoupling.ql │ │ ├── ClassEfferentCouplingGood.py │ │ ├── CommentRatio.qhelp │ │ ├── CommentRatio.ql │ │ ├── CyclomaticComplexity.qhelp │ │ ├── CyclomaticComplexity.ql │ │ ├── Dependencies │ │ │ ├── ExternalDependencies.ql │ │ │ └── ExternalDependenciesSourceLinks.ql │ │ ├── DirectImports.qhelp │ │ ├── DirectImports.ql │ │ ├── DocStringRatio.qhelp │ │ ├── DocStringRatio.ql │ │ ├── DuplicationProblems.inc.qhelp │ │ ├── External │ │ │ ├── CommitDisplayStrings.ql │ │ │ └── CommitSourceLinks.ql │ │ ├── FClasses.qhelp │ │ ├── FClasses.ql │ │ ├── FFunctionsAndMethods.qhelp │ │ ├── FFunctionsAndMethods.ql │ │ ├── FLines.ql │ │ ├── FLinesOfCode.qhelp │ │ ├── FLinesOfCode.ql │ │ ├── FLinesOfComments.qhelp │ │ ├── FLinesOfComments.ql │ │ ├── FLinesOfDuplicatedCode.qhelp │ │ ├── FLinesOfDuplicatedCode.ql │ │ ├── FLinesOfDuplicatedCodeCommon.inc.qhelp │ │ ├── FLinesOfSimilarCode.qhelp │ │ ├── FLinesOfSimilarCode.ql │ │ ├── FNumberOfTests.qhelp │ │ ├── FNumberOfTests.ql │ │ ├── FunctionNumberOfCalls.qhelp │ │ ├── FunctionNumberOfCalls.ql │ │ ├── FunctionStatementNestingDepth.py │ │ ├── FunctionStatementNestingDepth.qhelp │ │ ├── FunctionStatementNestingDepth.ql │ │ ├── FunctionStatementNestingDepthGood.py │ │ ├── History │ │ │ ├── HChurn.qhelp │ │ │ ├── HChurn.ql │ │ │ ├── HLinesAdded.qhelp │ │ │ ├── HLinesAdded.ql │ │ │ ├── HLinesDeleted.qhelp │ │ │ ├── HLinesDeleted.ql │ │ │ ├── HNumberOfAuthors.qhelp │ │ │ ├── HNumberOfAuthors.ql │ │ │ ├── HNumberOfCoCommits.qhelp │ │ │ ├── HNumberOfCoCommits.ql │ │ │ ├── HNumberOfCommits.qhelp │ │ │ ├── HNumberOfCommits.ql │ │ │ ├── HNumberOfReCommits.qhelp │ │ │ ├── HNumberOfReCommits.ql │ │ │ ├── HNumberOfRecentAuthors.ql │ │ │ ├── HNumberOfRecentChangedFiles.ql │ │ │ ├── HNumberOfRecentCommits.qhelp │ │ │ └── HNumberOfRecentCommits.ql │ │ ├── Internal │ │ │ ├── CallableDisplayStrings.ql │ │ │ ├── CallableExtents.ql │ │ │ ├── CallableSourceLinks.ql │ │ │ ├── ClassDisplayStrings.ql │ │ │ ├── ClassExtents.ql │ │ │ ├── ClassSourceLinks.ql │ │ │ └── Extents.qll │ │ ├── LackofCohesionInMethodsCK.qhelp │ │ ├── LackofCohesionInMethodsCK.ql │ │ ├── LackofCohesionInMethodsHM.qhelp │ │ ├── LackofCohesionInMethodsHM.ql │ │ ├── ModuleAfferentCoupling.qhelp │ │ ├── ModuleAfferentCoupling.ql │ │ ├── ModuleEfferentCoupling.qhelp │ │ ├── ModuleEfferentCoupling.ql │ │ ├── NumberOfParameters1.py │ │ ├── NumberOfParameters1Good.py │ │ ├── NumberOfParameters2.py │ │ ├── NumberOfParameters2Good.py │ │ ├── NumberOfParametersWithoutDefault.qhelp │ │ ├── NumberOfParametersWithoutDefault.ql │ │ ├── NumberOfStatements.qhelp │ │ ├── NumberOfStatements.ql │ │ ├── TransitiveImports.qhelp │ │ └── TransitiveImports.ql │ ├── Numerics │ │ ├── Pythagorean.py │ │ ├── Pythagorean.qhelp │ │ └── Pythagorean.ql │ ├── Resources │ │ ├── FileNotAlwaysClosed.py │ │ ├── FileNotAlwaysClosed.qhelp │ │ ├── FileNotAlwaysClosed.ql │ │ └── FileOpen.qll │ ├── Security │ │ ├── CVE-2018-1281 │ │ │ ├── BindToAllInterfaces.py │ │ │ ├── BindToAllInterfaces.qhelp │ │ │ └── BindToAllInterfaces.ql │ │ ├── CWE-020-ExternalAPIs │ │ │ ├── ExternalAPISinkExample.py │ │ │ ├── ExternalAPITaintStepExample.py │ │ │ ├── ExternalAPIs.qll │ │ │ ├── ExternalAPIsUsedWithUntrustedData.qhelp │ │ │ ├── ExternalAPIsUsedWithUntrustedData.ql │ │ │ ├── UntrustedDataToExternalAPI.qhelp │ │ │ └── UntrustedDataToExternalAPI.ql │ │ ├── CWE-020 │ │ │ ├── IncompleteHostnameRegExp.qhelp │ │ │ ├── IncompleteHostnameRegExp.ql │ │ │ ├── IncompleteUrlSubstringSanitization.qhelp │ │ │ ├── IncompleteUrlSubstringSanitization.ql │ │ │ └── examples │ │ │ │ ├── IncompleteHostnameRegExp.py │ │ │ │ └── IncompleteUrlSubstringSanitization.py │ │ ├── CWE-022 │ │ │ ├── PathInjection.qhelp │ │ │ ├── PathInjection.ql │ │ │ ├── TarSlip.qhelp │ │ │ ├── TarSlip.ql │ │ │ └── examples │ │ │ │ ├── tainted_path.py │ │ │ │ ├── tarslip_bad.py │ │ │ │ └── tarslip_good.py │ │ ├── CWE-078 │ │ │ ├── CommandInjection.qhelp │ │ │ ├── CommandInjection.ql │ │ │ └── examples │ │ │ │ └── command_injection.py │ │ ├── CWE-079 │ │ │ ├── Jinja2WithoutEscaping.qhelp │ │ │ ├── Jinja2WithoutEscaping.ql │ │ │ ├── ReflectedXss.qhelp │ │ │ ├── ReflectedXss.ql │ │ │ └── examples │ │ │ │ ├── jinja2.py │ │ │ │ └── xss.py │ │ ├── CWE-089 │ │ │ ├── SqlInjection.qhelp │ │ │ ├── SqlInjection.ql │ │ │ └── examples │ │ │ │ └── sql_injection.py │ │ ├── CWE-094 │ │ │ ├── CodeInjection.qhelp │ │ │ ├── CodeInjection.ql │ │ │ └── examples │ │ │ │ └── code_injection.py │ │ ├── CWE-209 │ │ │ ├── StackTraceExposure.py │ │ │ ├── StackTraceExposure.qhelp │ │ │ └── StackTraceExposure.ql │ │ ├── CWE-215 │ │ │ ├── FlaskDebug.py │ │ │ ├── FlaskDebug.qhelp │ │ │ └── FlaskDebug.ql │ │ ├── CWE-295 │ │ │ ├── MissingHostKeyValidation.qhelp │ │ │ ├── MissingHostKeyValidation.ql │ │ │ ├── RequestWithoutValidation.qhelp │ │ │ ├── RequestWithoutValidation.ql │ │ │ └── examples │ │ │ │ ├── make_request.py │ │ │ │ └── paramiko_host_key.py │ │ ├── CWE-312 │ │ │ ├── CleartextLogging.qhelp │ │ │ ├── CleartextLogging.ql │ │ │ ├── CleartextStorage.qhelp │ │ │ ├── CleartextStorage.ql │ │ │ └── examples │ │ │ │ └── password_in_cookie.py │ │ ├── CWE-326 │ │ │ ├── WeakCryptoKey.qhelp │ │ │ └── WeakCryptoKey.ql │ │ ├── CWE-327 │ │ │ ├── BrokenCryptoAlgorithm.qhelp │ │ │ ├── BrokenCryptoAlgorithm.ql │ │ │ ├── InsecureDefaultProtocol.qhelp │ │ │ ├── InsecureDefaultProtocol.ql │ │ │ ├── InsecureProtocol.qhelp │ │ │ ├── InsecureProtocol.ql │ │ │ └── examples │ │ │ │ ├── broken_crypto.py │ │ │ │ ├── insecure_default_protocol.py │ │ │ │ ├── insecure_protocol.py │ │ │ │ └── secure_default_protocol.py │ │ ├── CWE-377 │ │ │ ├── InsecureTemporaryFile.py │ │ │ ├── InsecureTemporaryFile.qhelp │ │ │ ├── InsecureTemporaryFile.ql │ │ │ └── SecureTemporaryFile.py │ │ ├── CWE-502 │ │ │ ├── JsonGood.py │ │ │ ├── UnpicklingBad.py │ │ │ ├── UnsafeDeserialization.qhelp │ │ │ └── UnsafeDeserialization.ql │ │ ├── CWE-601 │ │ │ ├── UrlRedirect.qhelp │ │ │ ├── UrlRedirect.ql │ │ │ └── examples │ │ │ │ ├── redirect_bad.py │ │ │ │ └── redirect_good.py │ │ ├── CWE-732 │ │ │ ├── WeakFilePermissions.qhelp │ │ │ └── WeakFilePermissions.ql │ │ └── CWE-798 │ │ │ ├── HardcodedCredentials.py │ │ │ ├── HardcodedCredentials.qhelp │ │ │ └── HardcodedCredentials.ql │ ├── Statements │ │ ├── AssertLiteralConstant.py │ │ ├── AssertLiteralConstant.qhelp │ │ ├── AssertLiteralConstant.ql │ │ ├── AssertOnTuple.py │ │ ├── AssertOnTuple.qhelp │ │ ├── AssertOnTuple.ql │ │ ├── BreakOrReturnInFinally.qhelp │ │ ├── BreakOrReturnInFinally.ql │ │ ├── C_StyleParentheses.py │ │ ├── C_StyleParentheses.qhelp │ │ ├── C_StyleParentheses.ql │ │ ├── ConstantInConditional.py │ │ ├── ConstantInConditional.qhelp │ │ ├── ConstantInConditional.ql │ │ ├── DocStrings.py │ │ ├── DocStrings.qhelp │ │ ├── DocStrings.ql │ │ ├── ExecUsed.py │ │ ├── ExecUsed.qhelp │ │ ├── ExecUsed.ql │ │ ├── ExitUsed.py │ │ ├── IterableStringOrSequence.py │ │ ├── IterableStringOrSequence.qhelp │ │ ├── IterableStringOrSequence.ql │ │ ├── MismatchInMultipleAssignment.py │ │ ├── MismatchInMultipleAssignment.qhelp │ │ ├── MismatchInMultipleAssignment.ql │ │ ├── ModificationOfLocals.py │ │ ├── ModificationOfLocals.qhelp │ │ ├── ModificationOfLocals.ql │ │ ├── NestedLoopsSameVariable.py │ │ ├── NestedLoopsSameVariable.qhelp │ │ ├── NestedLoopsSameVariable.ql │ │ ├── NestedLoopsSameVariableWithReuse.py │ │ ├── NestedLoopsSameVariableWithReuse.qhelp │ │ ├── NestedLoopsSameVariableWithReuse.ql │ │ ├── NonIteratorInForLoop.py │ │ ├── NonIteratorInForLoop.qhelp │ │ ├── NonIteratorInForLoop.ql │ │ ├── RedundantAssignment.py │ │ ├── RedundantAssignment.qhelp │ │ ├── RedundantAssignment.ql │ │ ├── ReturnOrYieldOutsideFunction.py │ │ ├── ReturnOrYieldOutsideFunction.qhelp │ │ ├── ReturnOrYieldOutsideFunction.ql │ │ ├── ShouldUseWithStatement.py │ │ ├── ShouldUseWithStatement.qhelp │ │ ├── ShouldUseWithStatement.ql │ │ ├── SideEffectInAssert.py │ │ ├── SideEffectInAssert.qhelp │ │ ├── SideEffectInAssert.ql │ │ ├── StatementNoEffect.py │ │ ├── StatementNoEffect.qhelp │ │ ├── StatementNoEffect.ql │ │ ├── StringConcatenationInLoop.qhelp │ │ ├── StringConcatenationInLoop.ql │ │ ├── SysExitUsed.py │ │ ├── TopLevelPrint.py │ │ ├── TopLevelPrint.qhelp │ │ ├── TopLevelPrint.ql │ │ ├── UnnecessaryDelete.py │ │ ├── UnnecessaryDelete.qhelp │ │ ├── UnnecessaryDelete.ql │ │ ├── UnnecessaryElseClause.py │ │ ├── UnnecessaryElseClause.qhelp │ │ ├── UnnecessaryElseClause.ql │ │ ├── UnnecessaryPass.qhelp │ │ ├── UnnecessaryPass.ql │ │ ├── UnreachableCode.py │ │ ├── UnreachableCode.qhelp │ │ ├── UnreachableCode.ql │ │ ├── UnusedExceptionObject.py │ │ ├── UnusedExceptionObject.qhelp │ │ ├── UnusedExceptionObject.ql │ │ ├── UseOfExit.qhelp │ │ └── UseOfExit.ql │ ├── Testing │ │ ├── ImpreciseAssert.py │ │ ├── ImpreciseAssert.qhelp │ │ ├── ImpreciseAssert.ql │ │ ├── ImpreciseAssert2.py │ │ └── Mox.qll │ ├── Variables │ │ ├── Definition.qll │ │ ├── Global.qhelp │ │ ├── Global.ql │ │ ├── GlobalAtModuleLevel.qhelp │ │ ├── GlobalAtModuleLevel.ql │ │ ├── LeakingListComprehension.py │ │ ├── LeakingListComprehension.qhelp │ │ ├── LeakingListComprehension.ql │ │ ├── LeakingListComprehensionFixed.py │ │ ├── Loop.qll │ │ ├── LoopVariableCapture.py │ │ ├── LoopVariableCapture.qhelp │ │ ├── LoopVariableCapture.ql │ │ ├── LoopVariableCapture2.py │ │ ├── MonkeyPatched.qll │ │ ├── MultiplyDefined.py │ │ ├── MultiplyDefined.qhelp │ │ ├── MultiplyDefined.ql │ │ ├── ShadowBuiltin.py │ │ ├── ShadowBuiltin.qhelp │ │ ├── ShadowBuiltin.ql │ │ ├── ShadowGlobal.py │ │ ├── ShadowGlobal.qhelp │ │ ├── ShadowGlobal.ql │ │ ├── Shadowing.qll │ │ ├── SuspiciousUnusedLoopIterationVariable.py │ │ ├── SuspiciousUnusedLoopIterationVariable.qhelp │ │ ├── SuspiciousUnusedLoopIterationVariable.ql │ │ ├── SuspiciousUnusedLoopIterationVariableFixed.py │ │ ├── Undefined.qll │ │ ├── UndefinedExport.py │ │ ├── UndefinedExport.qhelp │ │ ├── UndefinedExport.ql │ │ ├── UndefinedGlobal.py │ │ ├── UndefinedGlobal.qhelp │ │ ├── UndefinedGlobal.ql │ │ ├── UndefinedPlaceHolder.qhelp │ │ ├── UndefinedPlaceHolder.ql │ │ ├── UninitializedLocal.py │ │ ├── UninitializedLocal.qhelp │ │ ├── UninitializedLocal.ql │ │ ├── UnusedLocalVariable.py │ │ ├── UnusedLocalVariable.qhelp │ │ ├── UnusedLocalVariable.ql │ │ ├── UnusedModuleVariable.py │ │ ├── UnusedModuleVariable.qhelp │ │ ├── UnusedModuleVariable.ql │ │ ├── UnusedParameter.py │ │ ├── UnusedParameter.qhelp │ │ ├── UnusedParameter.ql │ │ ├── UnusedTuple.inc.qhelp │ │ └── UnusedVariableNaming.inc.qhelp │ ├── analysis │ │ ├── AlertSuppression.ql │ │ ├── CallGraphEfficiency.ql │ │ ├── CallGraphMarginalEfficiency.ql │ │ ├── Consistency.ql │ │ ├── ContextEfficiency.ql │ │ ├── ContextMarginalEfficiency.ql │ │ ├── CrossProjectDefinitions.qll │ │ ├── DefinitionTracking.qll │ │ ├── Definitions.ql │ │ ├── Efficiency.ql │ │ ├── FailedInference.ql │ │ ├── IDEContextual.qll │ │ ├── ImportFailure.qhelp │ │ ├── ImportFailure.ql │ │ ├── KeyPointsToFailure.ql │ │ ├── LocalDefinitions.ql │ │ ├── LocalReferences.ql │ │ ├── PointsToFailure.ql │ │ ├── Pruned.ql │ │ ├── RatioOfDefinitions.ql │ │ ├── Summary.ql │ │ ├── TypeHierarchyFailure.qhelp │ │ ├── TypeHierarchyFailure.ql │ │ └── TypeInferenceFailure.ql │ ├── codeql-suites │ │ ├── python-code-scanning.qls │ │ ├── python-lgtm-full.qls │ │ ├── python-lgtm.qls │ │ ├── python-security-and-quality.qls │ │ └── python-security-extended.qls │ ├── default.qll │ ├── experimental │ │ ├── README.md │ │ ├── Security-new-dataflow │ │ │ └── promote.sh │ │ ├── Security-old-dataflow │ │ │ ├── CVE-2018-1281 │ │ │ │ └── BindToAllInterfaces.ql │ │ │ ├── CWE-022 │ │ │ │ └── PathInjection.ql │ │ │ ├── CWE-078 │ │ │ │ └── CommandInjection.ql │ │ │ ├── CWE-079 │ │ │ │ └── ReflectedXss.ql │ │ │ ├── CWE-089 │ │ │ │ └── SqlInjection.ql │ │ │ ├── CWE-094 │ │ │ │ └── CodeInjection.ql │ │ │ ├── CWE-326 │ │ │ │ └── WeakCrypto.ql │ │ │ ├── CWE-502 │ │ │ │ └── UnsafeDeserialization.ql │ │ │ └── CWE-601 │ │ │ │ └── UrlRedirect.ql │ │ ├── Security │ │ │ ├── CWE-074 │ │ │ │ ├── JinjaBad.py │ │ │ │ ├── JinjaGood.py │ │ │ │ ├── TemplateInjection.qhelp │ │ │ │ └── TemplateInjection.ql │ │ │ ├── CWE-091 │ │ │ │ ├── Xslt.qhelp │ │ │ │ ├── Xslt.ql │ │ │ │ └── xslt.py │ │ │ └── CWE-643 │ │ │ │ ├── xpath.qhelp │ │ │ │ ├── xpath.ql │ │ │ │ ├── xpathBad.py │ │ │ │ └── xpathGood.py │ │ └── semmle │ │ │ └── python │ │ │ ├── Concepts.qll │ │ │ ├── Frameworks.qll │ │ │ ├── frameworks │ │ │ └── Stdlib.qll │ │ │ ├── security │ │ │ └── injection │ │ │ │ ├── XSLT.qll │ │ │ │ └── Xpath.qll │ │ │ └── templates │ │ │ ├── Airspeed.qll │ │ │ ├── Bottle.qll │ │ │ ├── Chameleon.qll │ │ │ ├── Cheetah.qll │ │ │ ├── Chevron.qll │ │ │ ├── DjangoTemplate.qll │ │ │ ├── FlaskTemplate.qll │ │ │ ├── Genshi.qll │ │ │ ├── Jinja.qll │ │ │ ├── Mako.qll │ │ │ ├── SSTISink.qll │ │ │ ├── Ssti.qll │ │ │ └── TRender.qll │ ├── external │ │ ├── DefectFilter.qll │ │ ├── DuplicateBlock.qhelp │ │ ├── DuplicateBlock.ql │ │ ├── DuplicateFunction.qhelp │ │ ├── DuplicateFunction.ql │ │ ├── ExternalArtifact.qll │ │ ├── MostlyDuplicateClass.qhelp │ │ ├── MostlyDuplicateClass.ql │ │ ├── MostlyDuplicateFile.qhelp │ │ ├── MostlyDuplicateFile.ql │ │ ├── MostlySimilarFile.qhelp │ │ ├── MostlySimilarFile.ql │ │ ├── SimilarFunction.qhelp │ │ ├── SimilarFunction.ql │ │ ├── Thrift.qll │ │ └── VCS.qll │ ├── meta │ │ ├── MetaMetrics.qll │ │ └── analysis-quality │ │ │ ├── CallGraphQuality.qll │ │ │ ├── PointsToResolvableCallRatio.ql │ │ │ ├── PointsToResolvableCalls.ql │ │ │ ├── PointsToResolvableCallsRelevantTarget.ql │ │ │ └── ResolvableCallCandidates.ql │ ├── printAst.ql │ ├── python.qll │ ├── qlpack.yml │ ├── queries.xml │ ├── semmle │ │ ├── crypto │ │ │ └── Crypto.qll │ │ ├── dataflow │ │ │ └── SSA.qll │ │ ├── files │ │ │ └── FileSystem.qll │ │ └── python │ │ │ ├── ApiGraphs.qll │ │ │ ├── AstExtended.qll │ │ │ ├── AstGenerated.qll │ │ │ ├── Class.qll │ │ │ ├── Comment.qll │ │ │ ├── Comparisons.qll │ │ │ ├── Comprehensions.qll │ │ │ ├── Concepts.qll │ │ │ ├── Constants.qll │ │ │ ├── Exprs.qll │ │ │ ├── Files.qll │ │ │ ├── Flow.qll │ │ │ ├── Frameworks.qll │ │ │ ├── Function.qll │ │ │ ├── GuardedControlFlow.qll │ │ │ ├── Import.qll │ │ │ ├── Keywords.qll │ │ │ ├── Metrics.qll │ │ │ ├── Module.qll │ │ │ ├── Operations.qll │ │ │ ├── PrintAst.qll │ │ │ ├── SSA.qll │ │ │ ├── Scope.qll │ │ │ ├── SelfAttribute.qll │ │ │ ├── SpecialMethods.qll │ │ │ ├── Stmts.qll │ │ │ ├── TestUtils.qll │ │ │ ├── Unit.qll │ │ │ ├── Variables.qll │ │ │ ├── dataflow │ │ │ ├── Configuration.qll │ │ │ ├── DataFlow.qll │ │ │ ├── Files.qll │ │ │ ├── Implementation.qll │ │ │ ├── Legacy.qll │ │ │ ├── StateTracking.qll │ │ │ ├── TaintTracking.qll │ │ │ ├── new │ │ │ │ ├── BarrierGuards.qll │ │ │ │ ├── DataFlow.qll │ │ │ │ ├── DataFlow2.qll │ │ │ │ ├── DataFlow3.qll │ │ │ │ ├── DataFlow4.qll │ │ │ │ ├── RemoteFlowSources.qll │ │ │ │ ├── TaintTracking.qll │ │ │ │ ├── TaintTracking2.qll │ │ │ │ ├── TaintTracking3.qll │ │ │ │ ├── TaintTracking4.qll │ │ │ │ ├── TypeTracker.qll │ │ │ │ └── internal │ │ │ │ │ ├── Attributes.qll │ │ │ │ │ ├── DataFlowImpl.qll │ │ │ │ │ ├── DataFlowImpl2.qll │ │ │ │ │ ├── DataFlowImpl3.qll │ │ │ │ │ ├── DataFlowImpl4.qll │ │ │ │ │ ├── DataFlowImplCommon.qll │ │ │ │ │ ├── DataFlowImplConsistency.qll │ │ │ │ │ ├── DataFlowImplSpecific.qll │ │ │ │ │ ├── DataFlowPrivate.qll │ │ │ │ │ ├── DataFlowPublic.qll │ │ │ │ │ ├── DataFlowUtil.qll │ │ │ │ │ ├── TaintTrackingPrivate.qll │ │ │ │ │ ├── TaintTrackingPublic.qll │ │ │ │ │ ├── readme.md │ │ │ │ │ ├── tainttracking1 │ │ │ │ │ ├── TaintTrackingImpl.qll │ │ │ │ │ └── TaintTrackingParameter.qll │ │ │ │ │ ├── tainttracking2 │ │ │ │ │ ├── TaintTrackingImpl.qll │ │ │ │ │ └── TaintTrackingParameter.qll │ │ │ │ │ ├── tainttracking3 │ │ │ │ │ ├── TaintTrackingImpl.qll │ │ │ │ │ └── TaintTrackingParameter.qll │ │ │ │ │ └── tainttracking4 │ │ │ │ │ ├── TaintTrackingImpl.qll │ │ │ │ │ └── TaintTrackingParameter.qll │ │ │ └── old │ │ │ │ ├── Configuration.qll │ │ │ │ ├── DataFlow.qll │ │ │ │ ├── Files.qll │ │ │ │ ├── Implementation.qll │ │ │ │ ├── Legacy.qll │ │ │ │ ├── StateTracking.qll │ │ │ │ └── TaintTracking.qll │ │ │ ├── dependencies │ │ │ ├── Dependencies.qll │ │ │ ├── DependencyKind.qll │ │ │ └── TechInventory.qll │ │ │ ├── essa │ │ │ ├── Definitions.qll │ │ │ ├── Essa.qll │ │ │ ├── SsaCompute.qll │ │ │ └── SsaDefinitions.qll │ │ │ ├── filters │ │ │ ├── GeneratedCode.qll │ │ │ └── Tests.qll │ │ │ ├── frameworks │ │ │ ├── Cryptodome.qll │ │ │ ├── Cryptography.qll │ │ │ ├── Dill.qll │ │ │ ├── Django.qll │ │ │ ├── Fabric.qll │ │ │ ├── Flask.qll │ │ │ ├── Invoke.qll │ │ │ ├── MySQLdb.qll │ │ │ ├── MysqlConnectorPython.qll │ │ │ ├── PEP249.qll │ │ │ ├── Psycopg2.qll │ │ │ ├── PyMySQL.qll │ │ │ ├── Stdlib.qll │ │ │ ├── Tornado.qll │ │ │ ├── Werkzeug.qll │ │ │ └── Yaml.qll │ │ │ ├── libraries │ │ │ └── Zope.qll │ │ │ ├── objects │ │ │ ├── Callables.qll │ │ │ ├── Classes.qll │ │ │ ├── Constants.qll │ │ │ ├── Descriptors.qll │ │ │ ├── Instances.qll │ │ │ ├── Modules.qll │ │ │ ├── ObjectAPI.qll │ │ │ ├── ObjectInternal.qll │ │ │ ├── ObjectModel.md │ │ │ ├── Sequences.qll │ │ │ └── TObject.qll │ │ │ ├── pointsto │ │ │ ├── Base.qll │ │ │ ├── CallGraph.qll │ │ │ ├── Context.qll │ │ │ ├── Filters.qll │ │ │ ├── Final.qll │ │ │ ├── MRO.qll │ │ │ ├── Overview.qll │ │ │ ├── PointsTo.qll │ │ │ └── PointsToContext.qll │ │ │ ├── protocols.qll │ │ │ ├── regex.qll │ │ │ ├── security │ │ │ ├── ClearText.qll │ │ │ ├── Crypto.qll │ │ │ ├── Exceptions.qll │ │ │ ├── Paths.qll │ │ │ ├── README.md │ │ │ ├── SQL.qll │ │ │ ├── SensitiveData.qll │ │ │ ├── TaintTracking.qll │ │ │ ├── dataflow │ │ │ │ ├── ChainedConfigs12.qll │ │ │ │ ├── CodeInjection.qll │ │ │ │ ├── CommandInjection.qll │ │ │ │ ├── ExceptionInfo.qll │ │ │ │ ├── PathInjection.qll │ │ │ │ ├── ReflectedXSS.qll │ │ │ │ ├── SqlInjection.qll │ │ │ │ ├── StackTraceExposure.qll │ │ │ │ ├── UnsafeDeserialization.qll │ │ │ │ └── UrlRedirect.qll │ │ │ ├── flow │ │ │ │ └── AnyCall.qll │ │ │ ├── injection │ │ │ │ ├── Command.qll │ │ │ │ ├── Deserialization.qll │ │ │ │ ├── Exec.qll │ │ │ │ ├── Marshal.qll │ │ │ │ ├── Path.qll │ │ │ │ ├── Pickle.qll │ │ │ │ ├── Sql.qll │ │ │ │ ├── Xml.qll │ │ │ │ └── Yaml.qll │ │ │ └── strings │ │ │ │ ├── Basic.qll │ │ │ │ ├── Common.qll │ │ │ │ ├── External.qll │ │ │ │ └── Untrusted.qll │ │ │ ├── strings.qll │ │ │ ├── templates │ │ │ ├── PyxlTags.qll │ │ │ └── Templates.qll │ │ │ ├── types │ │ │ ├── Builtins.qll │ │ │ ├── ClassObject.qll │ │ │ ├── Descriptors.qll │ │ │ ├── Exceptions.qll │ │ │ ├── Extensions.qll │ │ │ ├── FunctionObject.qll │ │ │ ├── IgnoredAndApproximations.txt │ │ │ ├── ImportTime.qll │ │ │ ├── ModuleKind.qll │ │ │ ├── ModuleObject.qll │ │ │ ├── Object.qll │ │ │ ├── Properties.qll │ │ │ └── Version.qll │ │ │ ├── values │ │ │ └── StringAttributes.qll │ │ │ ├── web │ │ │ ├── ClientHttpRequest.qll │ │ │ ├── Http.qll │ │ │ ├── HttpConstants.qll │ │ │ ├── HttpRedirect.qll │ │ │ ├── HttpRequest.qll │ │ │ ├── HttpResponse.qll │ │ │ ├── bottle │ │ │ │ ├── General.qll │ │ │ │ ├── Redirect.qll │ │ │ │ ├── Request.qll │ │ │ │ └── Response.qll │ │ │ ├── cherrypy │ │ │ │ ├── General.qll │ │ │ │ ├── Request.qll │ │ │ │ └── Response.qll │ │ │ ├── client │ │ │ │ ├── Requests.qll │ │ │ │ └── StdLib.qll │ │ │ ├── django │ │ │ │ ├── Db.qll │ │ │ │ ├── General.qll │ │ │ │ ├── Model.qll │ │ │ │ ├── Redirect.qll │ │ │ │ ├── Request.qll │ │ │ │ ├── Response.qll │ │ │ │ ├── Sanitizers.qll │ │ │ │ └── Shared.qll │ │ │ ├── falcon │ │ │ │ ├── General.qll │ │ │ │ ├── Request.qll │ │ │ │ └── Response.qll │ │ │ ├── flask │ │ │ │ ├── General.qll │ │ │ │ ├── Redirect.qll │ │ │ │ ├── Request.qll │ │ │ │ └── Response.qll │ │ │ ├── pyramid │ │ │ │ ├── Redirect.qll │ │ │ │ ├── Request.qll │ │ │ │ ├── Response.qll │ │ │ │ └── View.qll │ │ │ ├── stdlib │ │ │ │ ├── Request.qll │ │ │ │ └── Response.qll │ │ │ ├── tornado │ │ │ │ ├── Redirect.qll │ │ │ │ ├── Request.qll │ │ │ │ ├── Response.qll │ │ │ │ └── Tornado.qll │ │ │ ├── turbogears │ │ │ │ ├── Request.qll │ │ │ │ ├── Response.qll │ │ │ │ └── TurboGears.qll │ │ │ ├── twisted │ │ │ │ ├── Request.qll │ │ │ │ ├── Response.qll │ │ │ │ └── Twisted.qll │ │ │ └── webob │ │ │ │ └── Request.qll │ │ │ └── xml │ │ │ └── XML.qll │ ├── semmlecode.python.dbscheme │ ├── semmlecode.python.dbscheme.stats │ └── site.qll └── test │ ├── 2 │ ├── library-tests │ │ ├── ControlFlow │ │ │ ├── Exceptions │ │ │ │ ├── Handles.expected │ │ │ │ ├── Handles.ql │ │ │ │ ├── Known.expected │ │ │ │ ├── Known.ql │ │ │ │ ├── Likely.expected │ │ │ │ ├── Likely.ql │ │ │ │ ├── Unknown.expected │ │ │ │ ├── Unknown.ql │ │ │ │ └── test.py │ │ │ ├── dominators │ │ │ │ └── test.py │ │ │ ├── except │ │ │ │ └── test.py │ │ │ ├── kinds │ │ │ │ └── test.py │ │ │ └── raising_stmts │ │ │ │ └── test.py │ │ ├── PointsTo │ │ │ ├── class_properties │ │ │ │ ├── ClassValues.expected │ │ │ │ ├── ClassValues.ql │ │ │ │ ├── options │ │ │ │ └── test.py │ │ │ ├── import_time │ │ │ │ ├── Pruned.expected │ │ │ │ ├── Pruned.ql │ │ │ │ ├── module.py │ │ │ │ └── test.py │ │ │ ├── imports │ │ │ │ ├── Runtime.expected │ │ │ │ ├── Runtime.ql │ │ │ │ ├── package │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── foo.py │ │ │ │ └── test.py │ │ │ ├── metaclass │ │ │ │ ├── test.expected │ │ │ │ ├── test.py │ │ │ │ └── test.ql │ │ │ └── origin_uniqueness │ │ │ │ ├── Origin.expected │ │ │ │ ├── Origin.ql │ │ │ │ ├── module1.py │ │ │ │ ├── module2.py │ │ │ │ └── test.py │ │ ├── backticks │ │ │ ├── test.expected │ │ │ ├── test.py │ │ │ └── test.ql │ │ ├── classes │ │ │ ├── attr │ │ │ │ ├── class_attr.expected │ │ │ │ ├── class_attr.ql │ │ │ │ ├── class_has_attr.expected │ │ │ │ ├── class_has_attr.ql │ │ │ │ ├── list_attr.expected │ │ │ │ ├── list_attr.ql │ │ │ │ └── test.py │ │ │ └── mro │ │ │ │ ├── C3.expected │ │ │ │ ├── C3.ql │ │ │ │ ├── mro.expected │ │ │ │ ├── mro.ql │ │ │ │ └── test.py │ │ ├── comprehensions │ │ │ ├── ConsistencyCheck.expected │ │ │ ├── ConsistencyCheck.ql │ │ │ └── test.py │ │ ├── locations │ │ │ ├── general │ │ │ │ ├── AllLocations.expected │ │ │ │ ├── AllLocations.ql │ │ │ │ ├── Locations.expected │ │ │ │ ├── Locations.ql │ │ │ │ ├── Prefix.expected │ │ │ │ ├── Prefix.ql │ │ │ │ ├── indexing.py │ │ │ │ ├── syntax_error.py │ │ │ │ └── test.py │ │ │ ├── keywords │ │ │ │ ├── Locations.expected │ │ │ │ ├── Locations.ql │ │ │ │ └── test.py │ │ │ └── strings │ │ │ │ ├── test.expected │ │ │ │ ├── test.py │ │ │ │ └── test.ql │ │ ├── modules │ │ │ ├── general │ │ │ │ ├── assistant.py │ │ │ │ ├── confused_elements │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── a.py │ │ │ │ ├── helper.py │ │ │ │ ├── import_test.expected │ │ │ │ ├── import_test.ql │ │ │ │ ├── main.py │ │ │ │ ├── moduleobject_test.expected │ │ │ │ ├── moduleobject_test.ql │ │ │ │ ├── package │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── assistant.py │ │ │ │ │ └── helper.py │ │ │ │ └── test_star.py │ │ │ ├── options │ │ │ └── package_members │ │ │ │ ├── module_attributes.expected │ │ │ │ ├── module_attributes.ql │ │ │ │ ├── module_exports.expected │ │ │ │ ├── module_exports.ql │ │ │ │ ├── module_import_as.expected │ │ │ │ ├── module_import_as.ql │ │ │ │ ├── test.py │ │ │ │ ├── test_package │ │ │ │ ├── __init__.py │ │ │ │ ├── module1.py │ │ │ │ ├── module2.py │ │ │ │ ├── module3.py │ │ │ │ └── module4.py │ │ │ │ └── test_star.py │ │ ├── objects │ │ │ ├── Literals.expected │ │ │ ├── Literals.ql │ │ │ └── test.py │ │ ├── options │ │ ├── six │ │ │ ├── options │ │ │ ├── pointsto.expected │ │ │ ├── pointsto.ql │ │ │ └── test.py │ │ └── types │ │ │ ├── classes │ │ │ ├── c_inheritance.py │ │ │ ├── circular_inheritance.py │ │ │ ├── mro_test.expected │ │ │ ├── mro_test.ql │ │ │ ├── mutual_inheritance.py │ │ │ ├── new_style.expected │ │ │ └── new_style.ql │ │ │ ├── exceptions │ │ │ ├── ExitRaises.expected │ │ │ ├── ExitRaises.ql │ │ │ ├── Raises.expected │ │ │ ├── Raises.ql │ │ │ └── test.py │ │ │ ├── functions │ │ │ ├── Calls.expected │ │ │ ├── Calls.ql │ │ │ ├── Never.expected │ │ │ ├── Never.ql │ │ │ ├── ReturnTypes.expected │ │ │ ├── ReturnTypes.ql │ │ │ ├── odasa6418.py │ │ │ └── test.py │ │ │ └── properties │ │ │ ├── BuiltinProperties.expected │ │ │ └── BuiltinProperties.ql │ └── query-tests │ │ ├── Classes │ │ ├── equals-hash │ │ │ ├── EqualsOrHash.expected │ │ │ ├── EqualsOrHash.qlref │ │ │ ├── EqualsOrNotEquals.expected │ │ │ ├── EqualsOrNotEquals.qlref │ │ │ └── equals_hash.py │ │ ├── inconsistent-mro │ │ │ ├── InconsistentMRO.expected │ │ │ ├── InconsistentMRO.qlref │ │ │ └── inconsistent_mro.py │ │ ├── new-style │ │ │ ├── PropertyInOldStyleClass.expected │ │ │ ├── PropertyInOldStyleClass.qlref │ │ │ ├── SlotsInOldStyleClass.expected │ │ │ ├── SlotsInOldStyleClass.qlref │ │ │ ├── SuperInOldStyleClass.expected │ │ │ ├── SuperInOldStyleClass.qlref │ │ │ ├── global_meta.py │ │ │ ├── newstyle_test.py │ │ │ └── property_old_style.py │ │ └── undefined-attribute │ │ │ ├── MaybeUndefinedClassAttribute.expected │ │ │ ├── MaybeUndefinedClassAttribute.qlref │ │ │ ├── UndefinedClassAttribute.expected │ │ │ ├── UndefinedClassAttribute.qlref │ │ │ └── undefined_attribute.py │ │ ├── Exceptions │ │ ├── general │ │ │ ├── CatchingBaseException.expected │ │ │ ├── CatchingBaseException.qlref │ │ │ ├── EmptyExcept.expected │ │ │ ├── EmptyExcept.qlref │ │ │ ├── IllegalExceptionHandlerType.expected │ │ │ ├── IllegalExceptionHandlerType.qlref │ │ │ ├── IllegalRaise.expected │ │ │ ├── IllegalRaise.qlref │ │ │ ├── IncorrectExceptOrder.expected │ │ │ ├── IncorrectExceptOrder.qlref │ │ │ └── exceptions_test.py │ │ └── raising │ │ │ ├── RaisingTuple.expected │ │ │ ├── RaisingTuple.qlref │ │ │ └── test.py │ │ ├── Expressions │ │ ├── TruncatedDivision.expected │ │ ├── TruncatedDivision.qlref │ │ ├── TruncatedDivisionCorrect_test.py │ │ ├── TruncatedDivision_test.py │ │ ├── UseofApply.expected │ │ ├── UseofApply.py │ │ ├── UseofApply.qlref │ │ ├── UseofInput.expected │ │ ├── UseofInput.qlref │ │ ├── expressions_test.py │ │ └── safe_input.py │ │ ├── Functions │ │ ├── DeprecatedSliceMethod.expected │ │ ├── DeprecatedSliceMethod.qlref │ │ └── functions_test.py │ │ ├── Imports │ │ ├── encoding_error │ │ │ ├── EncodingError.expected │ │ │ ├── EncodingError.py │ │ │ └── EncodingError.qlref │ │ └── syntax_error │ │ │ ├── EncodingError.expected │ │ │ ├── EncodingError.qlref │ │ │ ├── SyntaxError.expected │ │ │ ├── SyntaxError.qlref │ │ │ ├── bad_encoding.py │ │ │ ├── nonsense.py │ │ │ └── test.py │ │ ├── Lexical │ │ ├── OldOctalLiteral.expected │ │ ├── OldOctalLiteral.qlref │ │ └── lexical_test.py │ │ ├── Statements │ │ ├── ExecUsed.expected │ │ ├── ExecUsed.qlref │ │ ├── IterableStringOrSequence.expected │ │ ├── IterableStringOrSequence.qlref │ │ ├── TopLevelPrint.expected │ │ ├── TopLevelPrint.qlref │ │ ├── fake_six.py │ │ ├── module.py │ │ └── statements_test.py │ │ ├── Variables │ │ ├── LeakyComp │ │ │ ├── LeakyComp.expected │ │ │ ├── LeakyComp.qlref │ │ │ └── test.py │ │ └── undefined │ │ │ ├── UndefinedExport.expected │ │ │ ├── UndefinedExport.py │ │ │ ├── UndefinedExport.qlref │ │ │ ├── UndefinedGlobal.expected │ │ │ ├── UndefinedGlobal.qlref │ │ │ ├── UninitializedLocal.expected │ │ │ ├── UninitializedLocal.py │ │ │ ├── UninitializedLocal.qlref │ │ │ ├── options │ │ │ ├── package │ │ │ ├── __init__.py │ │ │ └── module.py │ │ │ └── uses_execfile.py │ │ └── options │ ├── 3 │ ├── library-tests │ │ ├── ControlFlow │ │ │ └── Exceptions │ │ │ │ ├── Handles.expected │ │ │ │ ├── Handles.ql │ │ │ │ ├── Known.expected │ │ │ │ ├── Known.ql │ │ │ │ ├── Likely.expected │ │ │ │ ├── Likely.ql │ │ │ │ ├── Unknown.expected │ │ │ │ ├── Unknown.ql │ │ │ │ └── test.py │ │ ├── PointsTo │ │ │ ├── attributes │ │ │ │ ├── Test.expected │ │ │ │ ├── Test.ql │ │ │ │ ├── TestWithType.expected │ │ │ │ ├── TestWithType.ql │ │ │ │ ├── options │ │ │ │ └── test.py │ │ │ ├── class_properties │ │ │ │ ├── ClassValues.expected │ │ │ │ ├── ClassValues.ql │ │ │ │ ├── options │ │ │ │ └── test.py │ │ │ ├── consts │ │ │ │ ├── BooleanConstants.expected │ │ │ │ ├── BooleanConstants.ql │ │ │ │ ├── module.py │ │ │ │ └── test.py │ │ │ ├── import_time │ │ │ │ ├── Pruned.expected │ │ │ │ ├── Pruned.ql │ │ │ │ ├── module.py │ │ │ │ └── test.py │ │ │ ├── inheritance │ │ │ │ ├── Calls.expected │ │ │ │ ├── Calls.ql │ │ │ │ └── test.py │ │ │ ├── metaclass │ │ │ │ ├── test.expected │ │ │ │ ├── test.py │ │ │ │ └── test.ql │ │ │ ├── regressions │ │ │ │ └── subprocess-assert │ │ │ │ │ ├── ClassValue.expected │ │ │ │ │ ├── ClassValue.ql │ │ │ │ │ ├── mwe_failure.py │ │ │ │ │ ├── mwe_failure_2.py │ │ │ │ │ ├── mwe_success.py │ │ │ │ │ └── options │ │ │ └── typehints │ │ │ │ ├── Values.expected │ │ │ │ ├── Values.ql │ │ │ │ ├── options │ │ │ │ └── test.py │ │ ├── classes │ │ │ ├── attr │ │ │ │ ├── class_attr.expected │ │ │ │ ├── class_attr.ql │ │ │ │ ├── class_has_attr.expected │ │ │ │ ├── class_has_attr.ql │ │ │ │ └── test.py │ │ │ ├── meta │ │ │ │ ├── meta.expected │ │ │ │ ├── meta.ql │ │ │ │ ├── meta_obj.expected │ │ │ │ ├── meta_obj.ql │ │ │ │ └── test.py │ │ │ └── mro │ │ │ │ ├── mro.expected │ │ │ │ ├── mro.ql │ │ │ │ ├── mro_index.expected │ │ │ │ ├── mro_index.ql │ │ │ │ └── test.py │ │ ├── functions │ │ │ ├── Function.getAChildNode.expected │ │ │ ├── Function.getAChildNode.ql │ │ │ ├── Function.getArg.expected │ │ │ ├── Function.getArg.ql │ │ │ ├── Function.getArgByName.expected │ │ │ ├── Function.getArgByName.ql │ │ │ ├── FunctionExpr.getASubExpression.expected │ │ │ ├── FunctionExpr.getASubExpression.ql │ │ │ ├── FunctionExpr.getArgs.getAnnotation.expected │ │ │ ├── FunctionExpr.getArgs.getAnnotation.ql │ │ │ ├── FunctionExpr.getArgs.getDefault.expected │ │ │ ├── FunctionExpr.getArgs.getDefault.ql │ │ │ ├── FunctionExpr.getArgs.getKwAnnotation.expected │ │ │ ├── FunctionExpr.getArgs.getKwAnnotation.ql │ │ │ ├── FunctionExpr.getArgs.getKwDefault.expected │ │ │ ├── FunctionExpr.getArgs.getKwDefault.ql │ │ │ └── test.py │ │ ├── lib │ │ │ └── typing.py │ │ ├── locations │ │ │ ├── annotations │ │ │ │ ├── Locations.expected │ │ │ │ ├── Locations.ql │ │ │ │ └── test.py │ │ │ ├── general │ │ │ │ ├── AllLocations.expected │ │ │ │ ├── AllLocations.ql │ │ │ │ ├── Locations.expected │ │ │ │ ├── Locations.ql │ │ │ │ ├── Prefix.expected │ │ │ │ ├── Prefix.ql │ │ │ │ ├── indexing.py │ │ │ │ └── test.py │ │ │ └── keywords │ │ │ │ ├── Locations.expected │ │ │ │ ├── Locations.ql │ │ │ │ └── test.py │ │ ├── modules │ │ │ ├── entry_point │ │ │ │ ├── hash_bang │ │ │ │ │ ├── main.py │ │ │ │ │ ├── module.py │ │ │ │ │ ├── namespace_package │ │ │ │ │ │ ├── namespace_package_main.py │ │ │ │ │ │ └── namespace_package_module.py │ │ │ │ │ └── package │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── package_main.py │ │ │ │ │ │ └── package_module.py │ │ │ │ ├── modules.expected │ │ │ │ ├── modules.ql │ │ │ │ ├── name_main │ │ │ │ │ ├── main.py │ │ │ │ │ ├── module.py │ │ │ │ │ ├── namespace_package │ │ │ │ │ │ ├── namespace_package_main.py │ │ │ │ │ │ └── namespace_package_module.py │ │ │ │ │ └── package │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── package_main.py │ │ │ │ │ │ └── package_module.py │ │ │ │ ├── no_py_extension │ │ │ │ │ ├── main.secretpy │ │ │ │ │ ├── module.py │ │ │ │ │ ├── namespace_package │ │ │ │ │ │ ├── namespace_package_main.py │ │ │ │ │ │ └── namespace_package_module.py │ │ │ │ │ └── package │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── package_main.py │ │ │ │ │ │ └── package_module.py │ │ │ │ └── options │ │ │ ├── general │ │ │ │ ├── assistant.py │ │ │ │ ├── confused_elements │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── a.py │ │ │ │ ├── helper.py │ │ │ │ ├── import_test.expected │ │ │ │ ├── import_test.ql │ │ │ │ ├── main.py │ │ │ │ ├── moduleobject_test.expected │ │ │ │ ├── moduleobject_test.ql │ │ │ │ ├── package │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── assistant.py │ │ │ │ │ └── helper.py │ │ │ │ └── test_star.py │ │ │ ├── options │ │ │ └── package_members │ │ │ │ ├── module_attributes.expected │ │ │ │ ├── module_attributes.ql │ │ │ │ ├── module_exports.expected │ │ │ │ ├── module_exports.ql │ │ │ │ ├── module_import_as.expected │ │ │ │ ├── module_import_as.ql │ │ │ │ ├── options │ │ │ │ ├── test.py │ │ │ │ ├── test_package │ │ │ │ ├── __init__.py │ │ │ │ ├── module1.py │ │ │ │ ├── module2.py │ │ │ │ ├── module3.py │ │ │ │ ├── module4.py │ │ │ │ └── module5.py │ │ │ │ └── test_star.py │ │ ├── options │ │ ├── parameters │ │ │ ├── Annotations.expected │ │ │ ├── Annotations.ql │ │ │ ├── Defaults.expected │ │ │ ├── Defaults.ql │ │ │ ├── Special.expected │ │ │ ├── Special.ql │ │ │ └── test.py │ │ ├── six │ │ │ ├── options │ │ │ ├── pointsto.expected │ │ │ ├── pointsto.ql │ │ │ └── test.py │ │ ├── taint │ │ │ ├── strings │ │ │ │ ├── Taint.qll │ │ │ │ ├── TestTaint.expected │ │ │ │ ├── TestTaint.ql │ │ │ │ └── test.py │ │ │ └── unpacking │ │ │ │ ├── Taint.qll │ │ │ │ ├── TestTaint.expected │ │ │ │ ├── TestTaint.ql │ │ │ │ └── test.py │ │ └── types │ │ │ ├── classes │ │ │ ├── c_inheritance.py │ │ │ ├── circular_inheritance.py │ │ │ ├── mro_test.expected │ │ │ ├── mro_test.ql │ │ │ └── mutual_inheritance.py │ │ │ ├── exceptions │ │ │ ├── Raises.expected │ │ │ ├── Raises.ql │ │ │ ├── Viable.expected │ │ │ ├── Viable.ql │ │ │ └── test.py │ │ │ ├── functions │ │ │ ├── Calls.expected │ │ │ ├── Calls.ql │ │ │ ├── Never.expected │ │ │ ├── Never.ql │ │ │ ├── ReturnTypes.expected │ │ │ ├── ReturnTypes.ql │ │ │ └── test.py │ │ │ ├── namespaces │ │ │ ├── NameSpace.expected │ │ │ ├── NameSpace.ql │ │ │ ├── module.py │ │ │ └── namespace.py │ │ │ └── properties │ │ │ ├── BuiltinProperties.expected │ │ │ └── BuiltinProperties.ql │ └── query-tests │ │ ├── Classes │ │ ├── equals-attr │ │ │ ├── DefineEqualsWhenAddingAttributes.expected │ │ │ ├── DefineEqualsWhenAddingAttributes.qlref │ │ │ └── test.py │ │ ├── equals-hash │ │ │ ├── EqualsOrHash.expected │ │ │ ├── EqualsOrHash.qlref │ │ │ └── equals_hash.py │ │ ├── equals-ne │ │ │ ├── EqualsOrNotEquals.expected │ │ │ ├── EqualsOrNotEquals.qlref │ │ │ └── test.py │ │ ├── inconsistent-mro │ │ │ ├── InconsistentMRO.expected │ │ │ ├── InconsistentMRO.qlref │ │ │ └── inconsistent_mro.py │ │ └── undefined-attribute │ │ │ ├── MaybeUndefinedClassAttribute.expected │ │ │ ├── MaybeUndefinedClassAttribute.qlref │ │ │ ├── UndefinedClassAttribute.expected │ │ │ ├── UndefinedClassAttribute.qlref │ │ │ └── undefined_attribute.py │ │ ├── Expressions │ │ ├── Arguments │ │ │ ├── WrongNameForArgumentInCall.expected │ │ │ ├── WrongNameForArgumentInCall.qlref │ │ │ ├── WrongNumberArgumentsInCall.expected │ │ │ ├── WrongNumberArgumentsInCall.qlref │ │ │ └── wrong_arguments.py │ │ ├── Formatting │ │ │ ├── WrongNumberArgumentsForFormat.expected │ │ │ ├── WrongNumberArgumentsForFormat.qlref │ │ │ └── test.py │ │ ├── TruncatedDivision │ │ │ ├── TruncatedDivision.expected │ │ │ ├── TruncatedDivision.qlref │ │ │ ├── TruncatedDivisionCorrect_test.py │ │ │ └── TruncatedDivision_test.py │ │ └── UseofApply │ │ │ ├── UseofApply.expected │ │ │ ├── UseofApply.py │ │ │ └── UseofApply.qlref │ │ ├── Imports │ │ ├── encoding_error │ │ │ ├── EncodingError.expected │ │ │ ├── EncodingError.py │ │ │ └── EncodingError.qlref │ │ └── syntax_error │ │ │ ├── EncodingError.expected │ │ │ ├── EncodingError.qlref │ │ │ ├── SyntaxError.expected │ │ │ ├── SyntaxError.qlref │ │ │ ├── bad_encoding.py │ │ │ ├── nonsense.py │ │ │ └── test.py │ │ ├── Statements │ │ ├── general │ │ │ ├── ExecUsed.expected │ │ │ ├── ExecUsed.qlref │ │ │ ├── TopLevelPrint.expected │ │ │ ├── TopLevelPrint.qlref │ │ │ ├── module.py │ │ │ └── statements_test.py │ │ ├── iter │ │ │ ├── IterableStringOrSequence.expected │ │ │ ├── IterableStringOrSequence.qlref │ │ │ ├── NonIteratorInForLoop.expected │ │ │ ├── NonIteratorInForLoop.qlref │ │ │ ├── async_iterator.py │ │ │ ├── statements_test.py │ │ │ └── supress_uses_from_tests.py │ │ ├── unreachable │ │ │ ├── UnreachableCode.expected │ │ │ ├── UnreachableCode.qlref │ │ │ └── test.py │ │ └── unreachable_suppressed │ │ │ ├── UnreachableCode.expected │ │ │ ├── UnreachableCode.qlref │ │ │ └── test.py │ │ ├── Variables │ │ └── undefined │ │ │ ├── UndefinedExport.expected │ │ │ ├── UndefinedExport.py │ │ │ ├── UndefinedExport.qlref │ │ │ ├── UninitializedLocal.expected │ │ │ ├── UninitializedLocal.py │ │ │ ├── UninitializedLocal.qlref │ │ │ ├── enum_convert.py │ │ │ ├── imp_star.py │ │ │ ├── mutated_globals.py │ │ │ ├── options │ │ │ └── package │ │ │ ├── __init__.py │ │ │ └── module.py │ │ └── options │ ├── .project │ ├── .qlpath │ ├── LICENSE-PSF.md │ ├── TestUtilities │ ├── InlineExpectationsTest.qll │ └── InlineExpectationsTestPrivate.qll │ ├── experimental │ ├── README.md │ ├── dataflow │ │ ├── ApiGraphs-py2 │ │ │ ├── options │ │ │ ├── test.py │ │ │ ├── use.expected │ │ │ └── use.ql │ │ ├── ApiGraphs │ │ │ ├── mypkg │ │ │ │ ├── __init__.py │ │ │ │ ├── bar.py │ │ │ │ └── foo.py │ │ │ ├── options │ │ │ ├── test.py │ │ │ ├── test1.py │ │ │ ├── test2.py │ │ │ ├── test3.py │ │ │ ├── test4.py │ │ │ ├── test5.py │ │ │ ├── test6.py │ │ │ ├── test7.py │ │ │ ├── test_deep.py │ │ │ ├── use.expected │ │ │ └── use.ql │ │ ├── TestUtil │ │ │ ├── FlowTest.qll │ │ │ ├── LocalFlowStepTest.qll │ │ │ ├── MaximalFlowTest.qll │ │ │ ├── PrintNode.qll │ │ │ └── RoutingTest.qll │ │ ├── basic │ │ │ ├── allFlowsConfig.qll │ │ │ ├── callGraph.expected │ │ │ ├── callGraph.ql │ │ │ ├── callGraphSinks.expected │ │ │ ├── callGraphSinks.ql │ │ │ ├── callGraphSources.expected │ │ │ ├── callGraphSources.ql │ │ │ ├── dataflow-consistency.expected │ │ │ ├── dataflow-consistency.ql │ │ │ ├── global.expected │ │ │ ├── global.ql │ │ │ ├── globalStep.expected │ │ │ ├── globalStep.ql │ │ │ ├── local.expected │ │ │ ├── local.ql │ │ │ ├── localFlowStepTest.expected │ │ │ ├── localFlowStepTest.ql │ │ │ ├── localStep.expected │ │ │ ├── localStep.ql │ │ │ ├── maximalFlowTest.expected │ │ │ ├── maximalFlowTest.ql │ │ │ ├── maximalFlows.expected │ │ │ ├── maximalFlows.ql │ │ │ ├── maximalFlowsConfig.qll │ │ │ ├── sinks.expected │ │ │ ├── sinks.ql │ │ │ ├── sources.expected │ │ │ ├── sources.ql │ │ │ └── test.py │ │ ├── callGraphConfig.qll │ │ ├── consistency │ │ │ ├── dataflow-consistency.expected │ │ │ ├── dataflow-consistency.ql │ │ │ ├── modeling-consistency.expected │ │ │ ├── modeling-consistency.ql │ │ │ ├── module.py │ │ │ └── test.py │ │ ├── coverage │ │ │ ├── argumentPassing.py │ │ │ ├── argumentRouting1.expected │ │ │ ├── argumentRouting1.ql │ │ │ ├── argumentRouting2.expected │ │ │ ├── argumentRouting2.ql │ │ │ ├── argumentRouting3.expected │ │ │ ├── argumentRouting3.ql │ │ │ ├── argumentRouting4.expected │ │ │ ├── argumentRouting4.ql │ │ │ ├── argumentRouting5.expected │ │ │ ├── argumentRouting5.ql │ │ │ ├── argumentRouting6.expected │ │ │ ├── argumentRouting6.ql │ │ │ ├── argumentRouting7.expected │ │ │ ├── argumentRouting7.ql │ │ │ ├── argumentRoutingTest.expected │ │ │ ├── argumentRoutingTest.ql │ │ │ ├── classes.py │ │ │ ├── classesCallGraph.expected │ │ │ ├── classesCallGraph.ql │ │ │ ├── dataflow-consistency.expected │ │ │ ├── dataflow-consistency.ql │ │ │ ├── dataflow.expected │ │ │ ├── dataflow.ql │ │ │ ├── dataflowTest.expected │ │ │ ├── dataflowTest.ql │ │ │ ├── datamodel.py │ │ │ ├── localFlow.expected │ │ │ ├── localFlow.ql │ │ │ └── test.py │ │ ├── fieldflow │ │ │ ├── allLocalFlow.expected │ │ │ ├── allLocalFlow.ql │ │ │ ├── dataflow-consistency.expected │ │ │ ├── dataflow-consistency.ql │ │ │ ├── dataflow.expected │ │ │ ├── dataflow.ql │ │ │ ├── examples.py │ │ │ ├── globalStep.expected │ │ │ ├── globalStep.ql │ │ │ ├── localFlow.expected │ │ │ ├── localFlow.ql │ │ │ ├── postupdates.expected │ │ │ ├── postupdates.ql │ │ │ └── test.py │ │ ├── global-flow │ │ │ ├── accesses.expected │ │ │ ├── accesses.ql │ │ │ ├── dataflow-consistency.expected │ │ │ ├── dataflow-consistency.ql │ │ │ ├── known.py │ │ │ └── test.py │ │ ├── import-helper │ │ │ ├── ImportHelper.expected │ │ │ ├── ImportHelper.ql │ │ │ ├── README.md │ │ │ ├── dataflow-consistency.expected │ │ │ ├── dataflow-consistency.ql │ │ │ ├── mypkg │ │ │ │ ├── __init__.py │ │ │ │ ├── bar.py │ │ │ │ └── foo.py │ │ │ ├── test1.py │ │ │ ├── test2.py │ │ │ ├── test3.py │ │ │ ├── test4.py │ │ │ ├── test5.py │ │ │ ├── test6.py │ │ │ ├── test7.py │ │ │ └── test_deep.py │ │ ├── options │ │ ├── pep_328 │ │ │ ├── __init__.py │ │ │ ├── dataflow-consistency.expected │ │ │ ├── dataflow-consistency.ql │ │ │ ├── package │ │ │ │ ├── __init__.py │ │ │ │ ├── moduleA.py │ │ │ │ ├── subpackage1 │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── moduleX.py │ │ │ │ │ └── moduleY.py │ │ │ │ └── subpackage2 │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── moduleZ.py │ │ │ └── start.py │ │ ├── regression │ │ │ ├── custom_dataflow.expected │ │ │ ├── custom_dataflow.ql │ │ │ ├── dataflow-consistency.expected │ │ │ ├── dataflow-consistency.ql │ │ │ ├── dataflow.expected │ │ │ ├── dataflow.ql │ │ │ ├── module.py │ │ │ ├── pointsto.expected │ │ │ └── test.py │ │ ├── strange-essaflow │ │ │ ├── dataflow-consistency.expected │ │ │ ├── dataflow-consistency.ql │ │ │ ├── test.py │ │ │ ├── testFlow.expected │ │ │ └── testFlow.ql │ │ ├── tainttracking │ │ │ ├── TestTaintLib.qll │ │ │ ├── basic │ │ │ │ ├── GlobalTaintTracking.expected │ │ │ │ ├── GlobalTaintTracking.ql │ │ │ │ ├── LocalTaintStep.expected │ │ │ │ ├── LocalTaintStep.ql │ │ │ │ ├── dataflow-consistency.expected │ │ │ │ ├── dataflow-consistency.ql │ │ │ │ └── test.py │ │ │ ├── commonSanitizer │ │ │ │ ├── TestTaint.expected │ │ │ │ ├── TestTaint.ql │ │ │ │ ├── dataflow-consistency.expected │ │ │ │ ├── dataflow-consistency.ql │ │ │ │ └── test_string_const_compare.py │ │ │ ├── customSanitizer │ │ │ │ ├── TestTaint.expected │ │ │ │ ├── TestTaint.ql │ │ │ │ ├── dataflow-consistency.expected │ │ │ │ ├── dataflow-consistency.ql │ │ │ │ ├── test.py │ │ │ │ ├── test_logical.py │ │ │ │ └── test_reference.py │ │ │ ├── defaultAdditionalTaintStep-py3 │ │ │ │ ├── TestTaint.expected │ │ │ │ ├── TestTaint.ql │ │ │ │ ├── dataflow-consistency.expected │ │ │ │ ├── dataflow-consistency.ql │ │ │ │ ├── options │ │ │ │ ├── test_collections.py │ │ │ │ ├── test_pathlib.py │ │ │ │ ├── test_string.py │ │ │ │ └── test_unpacking.py │ │ │ ├── defaultAdditionalTaintStep │ │ │ │ ├── TestTaint.expected │ │ │ │ ├── TestTaint.ql │ │ │ │ ├── dataflow-consistency.expected │ │ │ │ ├── dataflow-consistency.ql │ │ │ │ ├── test_collections.py │ │ │ │ ├── test_json.py │ │ │ │ ├── test_string.py │ │ │ │ └── test_unpacking.py │ │ │ ├── taintlib.py │ │ │ └── unwanted-global-flow │ │ │ │ ├── dataflow-consistency.expected │ │ │ │ ├── dataflow-consistency.ql │ │ │ │ ├── test.py │ │ │ │ ├── testTaint.expected │ │ │ │ └── testTaint.ql │ │ ├── testConfig.qll │ │ ├── testlib.py │ │ ├── typetracking │ │ │ ├── attribute_tests.py │ │ │ ├── dataflow-consistency.expected │ │ │ ├── dataflow-consistency.ql │ │ │ ├── import_as_attr.py │ │ │ ├── import_as_attr_dotted.py │ │ │ ├── moduleattr.expected │ │ │ ├── moduleattr.ql │ │ │ ├── multiple_callables.py │ │ │ ├── mymodule.py │ │ │ ├── test.py │ │ │ ├── tracked.expected │ │ │ └── tracked.ql │ │ ├── validTest.py │ │ └── variable-capture │ │ │ ├── CaptureTest.expected │ │ │ ├── CaptureTest.ql │ │ │ ├── dataflow-consistency.expected │ │ │ ├── dataflow-consistency.ql │ │ │ ├── dict.py │ │ │ ├── in.py │ │ │ └── nonlocal.py │ ├── library-tests │ │ ├── CallGraph-implicit-init │ │ │ ├── PointsTo.expected │ │ │ ├── PointsTo.qlref │ │ │ ├── Relative.expected │ │ │ ├── Relative.qlref │ │ │ ├── TypeTracker.expected │ │ │ ├── TypeTracker.qlref │ │ │ ├── example.py │ │ │ ├── foo │ │ │ │ └── bar │ │ │ │ │ └── a.py │ │ │ ├── foo_explicit │ │ │ │ ├── __init__.py │ │ │ │ └── bar │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── a.py │ │ │ └── options │ │ ├── CallGraph-xfail │ │ │ ├── PointsTo.expected │ │ │ ├── PointsTo.qlref │ │ │ ├── README.md │ │ │ ├── annotation_xfail.py │ │ │ └── call_edge_xfail.py │ │ ├── CallGraph │ │ │ ├── CallGraphTest.qll │ │ │ ├── PointsTo.expected │ │ │ ├── PointsTo.ql │ │ │ ├── README.md │ │ │ ├── Relative.expected │ │ │ ├── Relative.ql │ │ │ ├── TypeTracker.expected │ │ │ ├── TypeTracker.ql │ │ │ ├── code │ │ │ │ ├── __init__.py │ │ │ │ ├── class_advanced.py │ │ │ │ ├── class_simple.py │ │ │ │ ├── runtime_decision.py │ │ │ │ ├── simple.py │ │ │ │ └── underscore_prefix_func_name.py │ │ │ └── test.py │ │ └── options │ ├── meta │ │ ├── ConceptsTest.qll │ │ └── debug │ │ │ └── dataflow.qll │ ├── query-tests │ │ ├── Security │ │ │ ├── CWE-074 │ │ │ │ ├── AirspeedSsti.py │ │ │ │ ├── BottleSsti.py │ │ │ │ ├── Chameleon.py │ │ │ │ ├── ChevronSsti.py │ │ │ │ ├── DjangoTemplates.py │ │ │ │ ├── FlaskTemplate.py │ │ │ │ ├── Genshi.py │ │ │ │ ├── JinjaSsti.py │ │ │ │ ├── MakoSsti.py │ │ │ │ ├── TRender.py │ │ │ │ ├── TemplateInjection.expected │ │ │ │ ├── TemplateInjection.qlref │ │ │ │ └── options │ │ │ ├── CWE-091 │ │ │ │ ├── Xslt.expected │ │ │ │ ├── Xslt.qlref │ │ │ │ ├── XsltSinks.expected │ │ │ │ ├── XsltSinks.ql │ │ │ │ ├── options │ │ │ │ ├── xslt.py │ │ │ │ ├── xsltInjection.py │ │ │ │ └── xsltSinks.py │ │ │ └── CWE-643 │ │ │ │ ├── options │ │ │ │ ├── xpath.expected │ │ │ │ ├── xpath.py │ │ │ │ ├── xpath.qlref │ │ │ │ ├── xpathBad.py │ │ │ │ ├── xpathFlow.py │ │ │ │ ├── xpathGood.py │ │ │ │ ├── xpathSinks.expected │ │ │ │ └── xpathSinks.ql │ │ └── options │ └── semmle │ │ └── python │ │ └── templates │ │ ├── Airspeed.py │ │ ├── AirspeedSSTISinks.expected │ │ ├── AirspeedSSTISinks.ql │ │ ├── Bottle.py │ │ ├── BottleSSTISinks.expected │ │ ├── BottleSSTISinks.ql │ │ ├── Chameleon.py │ │ ├── ChameleonSSTISinks.expected │ │ ├── ChameleonSSTISinks.ql │ │ ├── CheetahSSTISinks.expected │ │ ├── CheetahSSTISinks.ql │ │ ├── CheetahSinks.py │ │ ├── ChevronSSTISinks.expected │ │ ├── ChevronSSTISinks.ql │ │ ├── ChevronSinks.py │ │ ├── DjangoSSTISinks.expected │ │ ├── DjangoSSTISinks.ql │ │ ├── DjangoTemplates.py │ │ ├── Genshi.py │ │ ├── GenshiSSTISinks.expected │ │ ├── GenshiSSTISinks.ql │ │ ├── Jinja2Templates.py │ │ ├── JinjaSSTISinks.expected │ │ ├── JinjaSSTISinks.ql │ │ ├── Mako.py │ │ ├── MakoSSTISinks.expected │ │ ├── MakoSSTISinks.ql │ │ ├── TRender.py │ │ ├── TRenderSSTISinks.expected │ │ ├── TRenderSSTISinks.ql │ │ └── options │ ├── library-tests │ ├── ControlFlow │ │ ├── PointsToSupport │ │ │ ├── UseFromDefinition.expected │ │ │ └── UseFromDefinition.ql │ │ ├── augassign │ │ │ ├── AugAssignFlow.expected │ │ │ ├── AugAssignFlow.ql │ │ │ ├── Kind.expected │ │ │ ├── Kind.ql │ │ │ ├── SSA.expected │ │ │ ├── SSA.ql │ │ │ └── test.py │ │ ├── comparison │ │ │ ├── Compare.expected │ │ │ ├── Compare.ql │ │ │ └── compare.py │ │ ├── delete │ │ │ ├── test.expected │ │ │ ├── test.py │ │ │ └── test.ql │ │ ├── dominators │ │ │ ├── DominatesConsistency.expected │ │ │ ├── DominatesConsistency.ql │ │ │ ├── idom.expected │ │ │ ├── idom.ql │ │ │ └── test.py │ │ ├── except │ │ │ ├── test.expected │ │ │ ├── test.py │ │ │ └── test.ql │ │ ├── general │ │ │ ├── Comments.expected │ │ │ ├── Comments.ql │ │ │ ├── Cyclo.expected │ │ │ ├── Cyclo.ql │ │ │ ├── ImmediateDominatorCheck.expected │ │ │ ├── ImmediateDominatorCheck.ql │ │ │ ├── Lines.expected │ │ │ ├── Lines.ql │ │ │ ├── Reaches.expected │ │ │ ├── Reaches.ql │ │ │ ├── flowtest.py │ │ │ └── imports.py │ │ ├── raising_stmts │ │ │ ├── RaisingFlow.expected │ │ │ ├── RaisingFlow.ql │ │ │ └── test.py │ │ ├── splitting │ │ │ ├── NodeCount.expected │ │ │ ├── NodeCount.ql │ │ │ ├── SuccessorCount.expected │ │ │ ├── SuccessorCount.ql │ │ │ └── test.py │ │ ├── ssa │ │ │ ├── defns │ │ │ │ ├── test.expected │ │ │ │ ├── test.ql │ │ │ │ ├── test1.py │ │ │ │ ├── test2.py │ │ │ │ ├── test3.py │ │ │ │ ├── test4.py │ │ │ │ ├── test5.py │ │ │ │ └── test6.py │ │ │ ├── deletions │ │ │ │ ├── test.expected │ │ │ │ ├── test.py │ │ │ │ └── test.ql │ │ │ ├── phi-nodes │ │ │ │ ├── phi_input_test.expected │ │ │ │ ├── phi_input_test.ql │ │ │ │ ├── test.expected │ │ │ │ ├── test.ql │ │ │ │ ├── test1.py │ │ │ │ ├── test2.py │ │ │ │ ├── test3.py │ │ │ │ ├── test4.py │ │ │ │ ├── test5.py │ │ │ │ └── test6.py │ │ │ ├── undefined │ │ │ │ ├── test.expected │ │ │ │ ├── test.py │ │ │ │ └── test.ql │ │ │ ├── uses │ │ │ │ ├── test.expected │ │ │ │ ├── test.ql │ │ │ │ ├── test1.py │ │ │ │ ├── test2.py │ │ │ │ ├── test3.py │ │ │ │ ├── test5.py │ │ │ │ └── test6.py │ │ │ └── vars │ │ │ │ ├── test.expected │ │ │ │ ├── test.ql │ │ │ │ ├── test1.py │ │ │ │ ├── test2.py │ │ │ │ ├── test3.py │ │ │ │ ├── test4.py │ │ │ │ ├── test5.py │ │ │ │ └── test6.py │ │ ├── successors │ │ │ ├── Successors.expected │ │ │ ├── Successors.ql │ │ │ └── test.py │ │ ├── truefalse │ │ │ ├── Branch.expected │ │ │ ├── Branch.ql │ │ │ ├── ExceptionalSuccessors.expected │ │ │ ├── ExceptionalSuccessors.ql │ │ │ ├── TrueAndFalseSuccessor.expected │ │ │ ├── TrueAndFalseSuccessor.ql │ │ │ ├── TrueFalseSuccessors.expected │ │ │ ├── TrueFalseSuccessors.ql │ │ │ ├── boolops.py │ │ │ ├── compare.py │ │ │ ├── true_false_test.py │ │ │ └── true_succ.py │ │ └── try │ │ │ ├── test.py │ │ │ ├── test_ssa.expected │ │ │ └── test_ssa.ql │ ├── DefUse │ │ ├── Definitions.expected │ │ ├── Definitions.ql │ │ ├── Uses.expected │ │ ├── Uses.ql │ │ └── defuse.py │ ├── PointsTo │ │ ├── absent │ │ │ ├── Absent.expected │ │ │ ├── Absent.ql │ │ │ ├── absent.py │ │ │ └── module.py │ │ ├── api │ │ │ ├── ClassValue.expected │ │ │ ├── ClassValue.ql │ │ │ ├── Constants.expected │ │ │ ├── Constants.ql │ │ │ ├── QualifedNames.expected │ │ │ ├── QualifedNames.ql │ │ │ ├── Value.expected │ │ │ ├── Value.ql │ │ │ └── test.py │ │ ├── calls │ │ │ ├── CallPointsTo.expected │ │ │ ├── CallPointsTo.ql │ │ │ ├── GetACall.expected │ │ │ ├── GetACall.ql │ │ │ ├── getArgumentForCall.expected │ │ │ ├── getArgumentForCall.ql │ │ │ ├── getNamedArgumentForCall.expected │ │ │ ├── getNamedArgumentForCall.ql │ │ │ ├── getParameter.expected │ │ │ ├── getParameter.ql │ │ │ ├── getParameterByName.expected │ │ │ ├── getParameterByName.ql │ │ │ └── test.py │ │ ├── comparisons │ │ │ ├── PointsTo.expected │ │ │ ├── PointsTo.ql │ │ │ └── test.py │ │ ├── customise │ │ │ ├── test.expected │ │ │ ├── test.py │ │ │ └── test.ql │ │ ├── decorators │ │ │ ├── Test.expected │ │ │ ├── Test.ql │ │ │ ├── Values.expected │ │ │ ├── Values.ql │ │ │ └── test.py │ │ ├── extensions │ │ │ ├── Extend.expected │ │ │ ├── Extend.ql │ │ │ └── test.py │ │ ├── functions │ │ │ ├── Calls.expected │ │ │ ├── Calls.ql │ │ │ ├── NeverReturns.expected │ │ │ ├── NeverReturns.ql │ │ │ ├── odasa6418.py │ │ │ ├── test.expected │ │ │ ├── test.py │ │ │ └── test.ql │ │ ├── general │ │ │ ├── GlobalPointsTo.expected │ │ │ ├── GlobalPointsTo.ql │ │ │ ├── LocalPointsTo.expected │ │ │ ├── LocalPointsTo.ql │ │ │ ├── LocalPointsToType.expected │ │ │ ├── LocalPointsToType.ql │ │ │ ├── Util.qll │ │ │ ├── interesting.qll │ │ │ ├── options │ │ │ ├── pointsto_test.py │ │ │ └── xyz.py │ │ ├── global │ │ │ ├── Global.expected │ │ │ ├── Global.ql │ │ │ └── test.py │ │ ├── guarded │ │ │ ├── PointsTo.expected │ │ │ ├── PointsTo.ql │ │ │ ├── PointsToWithType.expected │ │ │ ├── PointsToWithType.ql │ │ │ ├── options │ │ │ ├── test.py │ │ │ └── type_test.py │ │ ├── import_star │ │ │ ├── Values.expected │ │ │ ├── Values.ql │ │ │ ├── nested │ │ │ │ ├── __init__.py │ │ │ │ └── nested.py │ │ │ └── test.py │ │ ├── imports │ │ │ ├── Runtime.expected │ │ │ ├── Runtime.ql │ │ │ ├── RuntimeWithType.expected │ │ │ ├── RuntimeWithType.ql │ │ │ ├── options │ │ │ ├── package │ │ │ │ ├── __init__.py │ │ │ │ ├── module.py │ │ │ │ ├── module2.py │ │ │ │ ├── moduleX.py │ │ │ │ └── x.py │ │ │ └── test.py │ │ ├── indexing │ │ │ ├── Test.expected │ │ │ ├── Test.ql │ │ │ ├── TestWithType.expected │ │ │ ├── TestWithType.ql │ │ │ ├── fake_collections.py │ │ │ ├── options │ │ │ └── test.py │ │ ├── inheritance │ │ │ ├── BaseTypes.expected │ │ │ ├── BaseTypes.ql │ │ │ ├── Calls.expected │ │ │ ├── Calls.ql │ │ │ ├── Declared.expected │ │ │ ├── Declared.ql │ │ │ ├── Declares.expected │ │ │ ├── Declares.ql │ │ │ ├── Lookup.expected │ │ │ ├── Lookup.ql │ │ │ ├── MetaClass.expected │ │ │ ├── MetaClass.ql │ │ │ ├── Mro.expected │ │ │ ├── Mro.ql │ │ │ ├── Self.expected │ │ │ ├── Self.ql │ │ │ ├── SuperTypes.expected │ │ │ ├── SuperTypes.ql │ │ │ └── test.py │ │ ├── local │ │ │ ├── LocalPointsTo.expected │ │ │ ├── LocalPointsTo.ql │ │ │ └── test.py │ │ ├── lookup │ │ │ ├── Lookup.expected │ │ │ ├── Lookup.ql │ │ │ └── test.py │ │ ├── metaclass │ │ │ ├── Failed.expected │ │ │ ├── Failed.ql │ │ │ ├── Mro.expected │ │ │ ├── Mro.ql │ │ │ ├── Style.expected │ │ │ ├── Style.ql │ │ │ ├── test.expected │ │ │ ├── test.py │ │ │ └── test.ql │ │ ├── new │ │ │ ├── Call.expected │ │ │ ├── Call.ql │ │ │ ├── ClassMethod.expected │ │ │ ├── ClassMethod.ql │ │ │ ├── Consistency.expected │ │ │ ├── Consistency.ql │ │ │ ├── Dataflow.expected │ │ │ ├── Dataflow.ql │ │ │ ├── Definitions.expected │ │ │ ├── Definitions.ql │ │ │ ├── ImpliesDataflow.expected │ │ │ ├── ImpliesDataflow.ql │ │ │ ├── Live.expected │ │ │ ├── Live.ql │ │ │ ├── NameSpace.expected │ │ │ ├── NameSpace.ql │ │ │ ├── Parameters.expected │ │ │ ├── Parameters.ql │ │ │ ├── PointsToMissing.expected │ │ │ ├── PointsToMissing.ql │ │ │ ├── PointsToNone.expected │ │ │ ├── PointsToNone.ql │ │ │ ├── PointsToUnknown.expected │ │ │ ├── PointsToUnknown.ql │ │ │ ├── PointsToWithContext.expected │ │ │ ├── PointsToWithContext.ql │ │ │ ├── PointsToWithType.expected │ │ │ ├── PointsToWithType.ql │ │ │ ├── Precedes.expected │ │ │ ├── Precedes.ql │ │ │ ├── README.md │ │ │ ├── Reachable.expected │ │ │ ├── Reachable.ql │ │ │ ├── SSA.expected │ │ │ ├── SSA.ql │ │ │ ├── SourceEdgeDefinitions.expected │ │ │ ├── SourceEdgeDefinitions.ql │ │ │ ├── SourceNodeDefinitions.expected │ │ │ ├── SourceNodeDefinitions.ql │ │ │ ├── SsaAttr.expected │ │ │ ├── SsaAttr.ql │ │ │ ├── SsaUses.expected │ │ │ ├── SsaUses.ql │ │ │ ├── TestEvaluate.expected │ │ │ ├── TestEvaluate.ql │ │ │ ├── Util.qll │ │ │ ├── Values.expected │ │ │ ├── Values.ql │ │ │ ├── VarUses.expected │ │ │ ├── VarUses.ql │ │ │ ├── code │ │ │ │ ├── __init__.py │ │ │ │ ├── a_simple.py │ │ │ │ ├── b_condition.py │ │ │ │ ├── c_tests.py │ │ │ │ ├── d_globals.py │ │ │ │ ├── e_temporal.py │ │ │ │ ├── f_finally.py │ │ │ │ ├── g_class_init.py │ │ │ │ ├── h_classes.py │ │ │ │ ├── i_imports.py │ │ │ │ ├── j_convoluted_imports.py │ │ │ │ ├── k_getsetattr.py │ │ │ │ ├── l_calls.py │ │ │ │ ├── m_attributes.py │ │ │ │ ├── n_nesting.py │ │ │ │ ├── o_no_returns.py │ │ │ │ ├── p_decorators.py │ │ │ │ ├── package │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── module.py │ │ │ │ │ ├── module2.py │ │ │ │ │ ├── moduleX.py │ │ │ │ │ └── x.py │ │ │ │ ├── q_super.py │ │ │ │ ├── r_regressions.py │ │ │ │ ├── s_scopes.py │ │ │ │ ├── t_type.py │ │ │ │ ├── test_package │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── module1.py │ │ │ │ │ └── module2.py │ │ │ │ ├── u_paired_values.py │ │ │ │ ├── v_pointsto_regressions.py │ │ │ │ ├── w_function_values.py │ │ │ │ └── xyz.py │ │ │ ├── options │ │ │ └── test.py │ │ ├── properties │ │ │ ├── Lookup.expected │ │ │ ├── Lookup.ql │ │ │ ├── Values.expected │ │ │ ├── Values.ql │ │ │ └── test.py │ │ ├── regressions │ │ │ ├── missing │ │ │ │ ├── if-urlsplit-access │ │ │ │ │ ├── Test.expected │ │ │ │ │ ├── Test.ql │ │ │ │ │ ├── options │ │ │ │ │ └── test.py │ │ │ │ ├── metaclass │ │ │ │ │ ├── getACall.expected │ │ │ │ │ ├── getACall.ql │ │ │ │ │ └── test.py │ │ │ │ ├── re-compile │ │ │ │ │ ├── Test.expected │ │ │ │ │ ├── Test.ql │ │ │ │ │ └── test.py │ │ │ │ └── uncalled-function │ │ │ │ │ ├── Test.expected │ │ │ │ │ ├── Test.ql │ │ │ │ │ └── test.py │ │ │ └── wrong │ │ │ │ ├── classmethod │ │ │ │ ├── Test.expected │ │ │ │ ├── Test.ql │ │ │ │ └── test.py │ │ │ │ └── module-imports │ │ │ │ └── conflict-stdlib │ │ │ │ ├── LocalModuleWithRef.expected │ │ │ │ ├── LocalModuleWithRef.ql │ │ │ │ ├── LocalModules.expected │ │ │ │ ├── LocalModules.ql │ │ │ │ ├── ModuleWithLocalRef.expected │ │ │ │ ├── ModuleWithLocalRef.ql │ │ │ │ ├── README.md │ │ │ │ ├── code-invalid-package-name │ │ │ │ ├── cmd.py │ │ │ │ ├── test_fail.py │ │ │ │ ├── test_ok.py │ │ │ │ ├── unique_name.py │ │ │ │ └── unique_name_use.py │ │ │ │ └── options │ │ ├── returns │ │ │ ├── Test.expected │ │ │ ├── Test.ql │ │ │ └── test.py │ │ ├── subclass │ │ │ ├── Checks.expected │ │ │ ├── Checks.ql │ │ │ ├── TestEvaluate.expected │ │ │ ├── TestEvaluate.ql │ │ │ ├── Values.expected │ │ │ ├── Values.ql │ │ │ └── test.py │ │ └── super │ │ │ ├── SuperMethodCall.expected │ │ │ ├── SuperMethodCall.ql │ │ │ └── test.py │ ├── attributes │ │ ├── SelfAttribute.expected │ │ ├── SelfAttribute.ql │ │ └── test.py │ ├── classes │ │ ├── abstract │ │ │ ├── Abstract.expected │ │ │ ├── Abstract.ql │ │ │ └── test.py │ │ ├── attr │ │ │ ├── class_attr.expected │ │ │ ├── class_attr.ql │ │ │ ├── class_defined_attr.expected │ │ │ ├── class_defined_attr.ql │ │ │ ├── class_defines_attr.expected │ │ │ ├── class_defines_attr.ql │ │ │ ├── class_has_attr.expected │ │ │ ├── class_has_attr.ql │ │ │ ├── hash.expected │ │ │ ├── hash.ql │ │ │ └── test.py │ │ └── mro │ │ │ ├── C3.expected │ │ │ ├── C3.ql │ │ │ ├── test.py │ │ │ └── wikipedia.py │ ├── comments │ │ ├── blocks.expected │ │ ├── blocks.ql │ │ ├── blocks_not_example.expected │ │ ├── blocks_not_example.ql │ │ ├── length.expected │ │ ├── length.ql │ │ ├── lines.expected │ │ ├── lines.ql │ │ ├── lines_not_example.expected │ │ ├── lines_not_example.ql │ │ ├── test.py │ │ ├── type_hint.expected │ │ └── type_hint.ql │ ├── comparisons │ │ ├── Compare.expected │ │ ├── Compare.ql │ │ ├── Compare2.expected │ │ ├── Compare2.ql │ │ ├── CompareControls.expected │ │ ├── CompareControls.ql │ │ ├── Implication.expected │ │ ├── Implication.ql │ │ ├── options │ │ └── test.py │ ├── comprehensions │ │ ├── AST.expected │ │ ├── AST.ql │ │ ├── Flow.expected │ │ ├── Flow.ql │ │ └── test.py │ ├── dependencies │ │ ├── Dependencies.expected │ │ ├── Dependencies.ql │ │ ├── a.py │ │ ├── b.py │ │ └── c.py │ ├── descriptors │ │ ├── Descriptors.expected │ │ ├── Descriptors.ql │ │ ├── Methods.expected │ │ ├── Methods.ql │ │ ├── Properties.expected │ │ ├── Properties.ql │ │ └── test.py │ ├── encoding │ │ ├── CheckEncoding.expected │ │ ├── CheckEncoding.ql │ │ ├── latin.py │ │ ├── shift_jis.py │ │ ├── utf8.py │ │ └── utf8_bom.py │ ├── examples │ │ └── custom-sanitizer │ │ │ ├── SanitizedEdges.expected │ │ │ ├── SanitizedEdges.ql │ │ │ ├── Taint.qll │ │ │ ├── TestTaint.expected │ │ │ ├── TestTaint.ql │ │ │ └── test.py │ ├── exceptions │ │ ├── Handles.expected │ │ ├── Handles.ql │ │ ├── Legal.expected │ │ ├── Legal.ql │ │ └── test.py │ ├── exprs │ │ ├── ast │ │ │ ├── AstParent.expected │ │ │ ├── AstParent.ql │ │ │ ├── Child.expected │ │ │ ├── Child.ql │ │ │ ├── IsConstant.expected │ │ │ ├── IsConstant.ql │ │ │ └── exprs_test.py │ │ ├── compare │ │ │ ├── Test.expected │ │ │ ├── Test.ql │ │ │ └── compare.py │ │ └── strings │ │ │ ├── Strings.expected │ │ │ ├── Strings.ql │ │ │ └── test.py │ ├── filters │ │ ├── generated │ │ │ ├── Filter.expected │ │ │ ├── Filter.ql │ │ │ ├── antlr.py │ │ │ ├── generic.py │ │ │ ├── sphinx.py │ │ │ ├── swig.py │ │ │ └── thrift.py │ │ └── tests │ │ │ ├── Filter.expected │ │ │ ├── Filter.ql │ │ │ ├── test.py │ │ │ ├── test_foo.py │ │ │ └── unittest_test.py │ ├── formatting │ │ ├── FormatArguments.expected │ │ ├── FormatArguments.ql │ │ ├── FormatFields.expected │ │ ├── FormatFields.ql │ │ └── test.py │ ├── frameworks │ │ ├── crypto │ │ │ ├── ConceptsTest.expected │ │ │ ├── ConceptsTest.ql │ │ │ ├── test_dsa.py │ │ │ ├── test_ec.py │ │ │ └── test_rsa.py │ │ ├── cryptodome │ │ │ ├── ConceptsTest.expected │ │ │ ├── ConceptsTest.ql │ │ │ ├── test_dsa.py │ │ │ ├── test_ec.py │ │ │ └── test_rsa.py │ │ ├── cryptography │ │ │ ├── ConceptsTest.expected │ │ │ ├── ConceptsTest.ql │ │ │ ├── test_dsa.py │ │ │ ├── test_ec.py │ │ │ └── test_rsa.py │ │ ├── dill │ │ │ ├── ConceptsTest.expected │ │ │ ├── ConceptsTest.ql │ │ │ └── Decoding.py │ │ ├── django-v1 │ │ │ ├── ConceptsTest.expected │ │ │ ├── ConceptsTest.ql │ │ │ └── routing_test.py │ │ ├── django-v2-v3 │ │ │ ├── ConceptsTest.expected │ │ │ ├── ConceptsTest.ql │ │ │ ├── README.md │ │ │ ├── TestTaint.expected │ │ │ ├── TestTaint.ql │ │ │ ├── dummy_import.py │ │ │ ├── manage.py │ │ │ ├── options │ │ │ ├── response_test.py │ │ │ ├── routing_test.py │ │ │ ├── taint_forms.py │ │ │ ├── taint_test.py │ │ │ ├── testapp │ │ │ │ ├── __init__.py │ │ │ │ ├── admin.py │ │ │ │ ├── apps.py │ │ │ │ ├── migrations │ │ │ │ │ └── __init__.py │ │ │ │ ├── models.py │ │ │ │ ├── tests.py │ │ │ │ ├── urls.py │ │ │ │ └── views.py │ │ │ └── testproj │ │ │ │ ├── __init__.py │ │ │ │ ├── asgi.py │ │ │ │ ├── settings.py │ │ │ │ ├── urls.py │ │ │ │ └── wsgi.py │ │ ├── django │ │ │ ├── ConceptsTest.expected │ │ │ ├── ConceptsTest.ql │ │ │ └── SqlExecution.py │ │ ├── fabric │ │ │ ├── ConceptsTest.expected │ │ │ ├── ConceptsTest.ql │ │ │ ├── TestTaint.expected │ │ │ ├── TestTaint.ql │ │ │ ├── fabric_v1_execute.py │ │ │ ├── fabric_v1_test.py │ │ │ └── fabric_v2_test.py │ │ ├── flask │ │ │ ├── ConceptsTest.expected │ │ │ ├── ConceptsTest.ql │ │ │ ├── TestTaint.expected │ │ │ ├── TestTaint.ql │ │ │ ├── external_blueprint.py │ │ │ ├── old_test.py │ │ │ ├── response_test.py │ │ │ ├── routing_test.py │ │ │ └── taint_test.py │ │ ├── invoke │ │ │ ├── ConceptsTest.expected │ │ │ ├── ConceptsTest.ql │ │ │ └── invoke_test.py │ │ ├── modeling-example │ │ │ ├── NaiveModel.expected │ │ │ ├── NaiveModel.ql │ │ │ ├── ProperModel.expected │ │ │ ├── ProperModel.ql │ │ │ ├── README.md │ │ │ ├── SharedCode.qll │ │ │ └── test.py │ │ ├── mysql-connector-python │ │ │ ├── ConceptsTest.expected │ │ │ ├── ConceptsTest.ql │ │ │ └── pep249.py │ │ ├── mysqldb │ │ │ ├── ConceptsTest.expected │ │ │ ├── ConceptsTest.ql │ │ │ └── pep249.py │ │ ├── pymysql │ │ │ ├── ConceptsTest.expected │ │ │ ├── ConceptsTest.ql │ │ │ └── pep249.py │ │ ├── stdlib-py2 │ │ │ ├── CodeExecution.py │ │ │ ├── ConceptsTest.expected │ │ │ ├── ConceptsTest.ql │ │ │ ├── SystemCommandExecution.py │ │ │ └── options │ │ ├── stdlib-py3 │ │ │ ├── CodeExecution.py │ │ │ ├── ConceptsTest.expected │ │ │ ├── ConceptsTest.ql │ │ │ ├── Decoding.py │ │ │ ├── Encoding.py │ │ │ └── options │ │ ├── stdlib │ │ │ ├── CodeExecution.py │ │ │ ├── CodeExecutionPossibleFP1.py │ │ │ ├── CodeExecutionPossibleFP2.py │ │ │ ├── CodeExecutionPossibleFP3.py │ │ │ ├── ConceptsTest.expected │ │ │ ├── ConceptsTest.ql │ │ │ ├── Decoding.py │ │ │ ├── Encoding.py │ │ │ ├── FileSystemAccess.py │ │ │ ├── PathNormalization.py │ │ │ ├── SafeAccessCheck.py │ │ │ ├── SystemCommandExecution.py │ │ │ ├── TestTaint.expected │ │ │ ├── TestTaint.ql │ │ │ ├── http_server.py │ │ │ └── pep249.py │ │ ├── tornado │ │ │ ├── ConceptsTest.expected │ │ │ ├── ConceptsTest.ql │ │ │ ├── README.md │ │ │ ├── TestTaint.expected │ │ │ ├── TestTaint.ql │ │ │ ├── basic.py │ │ │ ├── options │ │ │ ├── response_test.py │ │ │ ├── routing_test.py │ │ │ └── taint_test.py │ │ └── yaml │ │ │ ├── ConceptsTest.expected │ │ │ ├── ConceptsTest.ql │ │ │ └── Decoding.py │ ├── imports │ │ ├── Alias.expected │ │ ├── Alias.ql │ │ └── test.py │ ├── jump_to_defn │ │ ├── Consistency.expected │ │ ├── Consistency.ql │ │ ├── Remote.expected │ │ ├── Remote.ql │ │ ├── Symbol.expected │ │ ├── Symbol.ql │ │ ├── module.py │ │ ├── test.expected │ │ ├── test.py │ │ └── test.ql │ ├── locations │ │ ├── elif │ │ │ ├── test.expected │ │ │ ├── test.py │ │ │ └── test.ql │ │ ├── implicit_concatenation │ │ │ ├── part_locations.expected │ │ │ ├── part_locations.ql │ │ │ ├── parts.expected │ │ │ ├── parts.ql │ │ │ ├── test.expected │ │ │ ├── test.py │ │ │ └── test.ql │ │ ├── negative_numbers │ │ │ ├── negative.expected │ │ │ ├── negative.py │ │ │ └── negative.ql │ │ └── nested_classes │ │ │ ├── Test.expected │ │ │ ├── Test.ql │ │ │ └── test.py │ ├── modules │ │ ├── duplicate_name │ │ │ ├── Modules.expected │ │ │ ├── Modules.ql │ │ │ ├── options │ │ │ ├── test.py │ │ │ └── venv │ │ │ │ └── sqlite3 │ │ │ │ ├── __init__.py │ │ │ │ └── dump.py │ │ ├── overlapping-paths │ │ │ ├── ModuleNames.expected │ │ │ ├── ModuleNames.ql │ │ │ ├── options │ │ │ ├── outer │ │ │ │ └── inner │ │ │ │ │ ├── imported │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── x.py │ │ │ │ │ └── y.py │ │ │ └── src │ │ │ │ ├── package │ │ │ │ ├── __init__.py │ │ │ │ └── test.py │ │ │ │ └── script.py │ │ ├── spurious_init │ │ │ ├── ModuleNames.expected │ │ │ ├── ModuleNames.ql │ │ │ ├── options │ │ │ └── root │ │ │ │ ├── __init__.py │ │ │ │ └── src-folder │ │ │ │ └── package │ │ │ │ ├── __init__.py │ │ │ │ └── module.py │ │ └── usage │ │ │ ├── ModuleUsage.expected │ │ │ ├── ModuleUsage.ql │ │ │ ├── imported.py │ │ │ ├── main.py │ │ │ ├── myscript.py │ │ │ ├── options │ │ │ └── script │ ├── objects │ │ ├── Literals.expected │ │ ├── Literals.ql │ │ ├── Name.expected │ │ ├── Name.ql │ │ ├── Strings.expected │ │ ├── Strings.ql │ │ └── test.py │ ├── options │ ├── overrides │ │ ├── FunctionOverrides.expected │ │ ├── FunctionOverrides.ql │ │ └── test.py │ ├── parameters │ │ ├── Annotations.expected │ │ ├── Annotations.ql │ │ ├── Defaults.expected │ │ ├── Defaults.ql │ │ ├── Special.expected │ │ ├── Special.ql │ │ └── test.py │ ├── parentheses │ │ ├── Parens.expected │ │ ├── Parens.ql │ │ └── test.py │ ├── regex │ │ ├── Alternation.expected │ │ ├── Alternation.ql │ │ ├── Characters.expected │ │ ├── Characters.ql │ │ ├── FirstLast.expected │ │ ├── FirstLast.ql │ │ ├── GroupContents.expected │ │ ├── GroupContents.ql │ │ ├── Mode.expected │ │ ├── Mode.ql │ │ ├── Qualified.expected │ │ ├── Qualified.ql │ │ ├── Regex.expected │ │ ├── Regex.ql │ │ └── test.py │ ├── scopes │ │ ├── Previous.expected │ │ ├── Previous.ql │ │ └── test.py │ ├── security │ │ ├── command-execution │ │ │ ├── CommandSinks.expected │ │ │ ├── CommandSinks.ql │ │ │ ├── fabric-LICENSE │ │ │ ├── fabric_v1_test.py │ │ │ ├── fabric_v2_test.py │ │ │ ├── invoke_test.py │ │ │ └── options │ │ ├── fabric-v1-execute │ │ │ ├── Taint.qll │ │ │ ├── TestTaint.expected │ │ │ ├── TestTaint.ql │ │ │ ├── options │ │ │ └── test.py │ │ └── sensitive │ │ │ ├── Sources.expected │ │ │ ├── Sources.ql │ │ │ └── test.py │ ├── state_tracking │ │ ├── Lib.qll │ │ ├── Test.expected │ │ ├── Test.ql │ │ ├── Violations.expected │ │ ├── Violations.ql │ │ ├── global.py │ │ └── test.py │ ├── stmts │ │ ├── general │ │ │ ├── AstParent.expected │ │ │ ├── AstParent.ql │ │ │ ├── SubExpressions.expected │ │ │ ├── SubExpressions.ql │ │ │ └── subexpr_test.py │ │ ├── raise_stmt │ │ │ ├── AST.expected │ │ │ ├── AST.ql │ │ │ └── test.py │ │ ├── try_stmt │ │ │ ├── AST.expected │ │ │ ├── AST.ql │ │ │ └── test.py │ │ └── with_stmt │ │ │ ├── AST.expected │ │ │ ├── AST.ql │ │ │ └── test.py │ ├── taint │ │ ├── collections │ │ │ ├── Taint.qll │ │ │ ├── TestStep.expected │ │ │ ├── TestStep.ql │ │ │ ├── TestTaint.expected │ │ │ ├── TestTaint.ql │ │ │ └── test.py │ │ ├── config │ │ │ ├── RockPaperScissors.expected │ │ │ ├── RockPaperScissors.ql │ │ │ ├── Simple.expected │ │ │ ├── Simple.ql │ │ │ ├── TaintLib.qll │ │ │ ├── TaintedArgument.expected │ │ │ ├── TaintedArgument.ql │ │ │ ├── TestNode.expected │ │ │ ├── TestNode.ql │ │ │ ├── TestSink.expected │ │ │ ├── TestSink.ql │ │ │ ├── TestSource.expected │ │ │ ├── TestSource.ql │ │ │ ├── TestStep.expected │ │ │ ├── TestStep.ql │ │ │ ├── carrier.py │ │ │ ├── deep.py │ │ │ ├── module.py │ │ │ ├── rockpaperscissors.py │ │ │ ├── sanitizer.py │ │ │ └── test.py │ │ ├── dataflow │ │ │ ├── Config.qll │ │ │ ├── Dataflow.expected │ │ │ ├── Dataflow.ql │ │ │ ├── TestNode.expected │ │ │ ├── TestNode.ql │ │ │ └── test.py │ │ ├── example │ │ │ ├── DilbertConfig.qll │ │ │ ├── Edges.expected │ │ │ ├── Edges.ql │ │ │ ├── ExampleConfig.expected │ │ │ ├── ExampleConfig.ql │ │ │ ├── Nodes.expected │ │ │ ├── Nodes.ql │ │ │ └── example.py │ │ ├── exception_traceback │ │ │ ├── TestNode.expected │ │ │ ├── TestNode.ql │ │ │ ├── TestSource.expected │ │ │ ├── TestSource.ql │ │ │ ├── TestStep.expected │ │ │ ├── TestStep.ql │ │ │ └── test.py │ │ ├── extensions │ │ │ ├── ExtensionsLib.qll │ │ │ ├── TestNode.expected │ │ │ ├── TestNode.ql │ │ │ ├── TestStep.expected │ │ │ ├── TestStep.ql │ │ │ └── visitor.py │ │ ├── flowpath_regression │ │ │ ├── Config.qll │ │ │ ├── Path.expected │ │ │ ├── Path.ql │ │ │ └── test.py │ │ ├── general │ │ │ ├── Contexts.expected │ │ │ ├── Contexts.ql │ │ │ ├── ModuleAttribute.expected │ │ │ ├── ModuleAttribute.ql │ │ │ ├── ParamSource.expected │ │ │ ├── ParamSource.ql │ │ │ ├── TaintConsistency.expected │ │ │ ├── TaintConsistency.ql │ │ │ ├── TaintLib.qll │ │ │ ├── TestDefn.expected │ │ │ ├── TestDefn.ql │ │ │ ├── TestSanitizers.expected │ │ │ ├── TestSanitizers.ql │ │ │ ├── TestSink.expected │ │ │ ├── TestSink.ql │ │ │ ├── TestSource.expected │ │ │ ├── TestSource.ql │ │ │ ├── TestStep.expected │ │ │ ├── TestStep.ql │ │ │ ├── TestTaint.expected │ │ │ ├── TestTaint.ql │ │ │ ├── TestVar.expected │ │ │ ├── TestVar.ql │ │ │ ├── assignment.py │ │ │ ├── carrier.py │ │ │ ├── deep.py │ │ │ ├── module.py │ │ │ ├── printAst.expected │ │ │ ├── printAst.ql │ │ │ ├── rockpaperscissors.py │ │ │ ├── sanitizer.py │ │ │ └── test.py │ │ ├── namedtuple │ │ │ ├── SanitizedEdges.expected │ │ │ ├── SanitizedEdges.ql │ │ │ ├── Taint.qll │ │ │ ├── TestTaint.expected │ │ │ ├── TestTaint.ql │ │ │ └── test.py │ │ ├── strings │ │ │ ├── Taint.qll │ │ │ ├── TestStep.expected │ │ │ ├── TestStep.ql │ │ │ ├── TestTaint.expected │ │ │ ├── TestTaint.ql │ │ │ └── test.py │ │ └── unpacking │ │ │ ├── Taint.qll │ │ │ ├── TestStep.expected │ │ │ ├── TestStep.ql │ │ │ ├── TestTaint.expected │ │ │ ├── TestTaint.ql │ │ │ └── test.py │ ├── thrift │ │ ├── Child.expected │ │ ├── Child.ql │ │ ├── File.expected │ │ ├── File.ql │ │ ├── Function.expected │ │ ├── Function.ql │ │ ├── References.expected │ │ ├── References.ql │ │ ├── Service.expected │ │ ├── Service.ql │ │ ├── Test.expected │ │ ├── Test.ql │ │ ├── Value.expected │ │ ├── Value.ql │ │ ├── extended.thrift │ │ ├── options │ │ ├── test.py │ │ └── test.thrift │ ├── types │ │ ├── attributes │ │ │ ├── Test.expected │ │ │ ├── Test.ql │ │ │ └── test.py │ │ ├── classattr │ │ │ ├── ClassAttribute.expected │ │ │ ├── ClassAttribute.ql │ │ │ ├── ClassMember.expected │ │ │ ├── ClassMember.ql │ │ │ ├── SpecialAttribute.expected │ │ │ ├── SpecialAttribute.ql │ │ │ └── classattr.py │ │ ├── classes │ │ │ ├── FailedInference.expected │ │ │ ├── FailedInference.ql │ │ │ ├── c_inheritance.py │ │ │ ├── circular_inheritance.py │ │ │ ├── duplicate_base.expected │ │ │ ├── duplicate_base.ql │ │ │ └── mutual_inheritance.py │ │ ├── exceptions │ │ │ ├── ExitRaises.expected │ │ │ ├── ExitRaises.ql │ │ │ ├── Handles.expected │ │ │ ├── Handles.ql │ │ │ ├── Impossible.expected │ │ │ ├── Impossible.ql │ │ │ ├── LineRaises.expected │ │ │ ├── LineRaises.ql │ │ │ ├── Raises.expected │ │ │ ├── Raises.ql │ │ │ ├── Reraises.expected │ │ │ ├── Reraises.ql │ │ │ ├── Viable.expected │ │ │ ├── Viable.ql │ │ │ └── test.py │ │ ├── functions │ │ │ ├── Zope.expected │ │ │ ├── Zope.ql │ │ │ ├── test.py │ │ │ └── zope │ │ │ │ ├── __init__.py │ │ │ │ └── interface.py │ │ └── properties │ │ │ ├── Deleters.expected │ │ │ ├── Deleters.ql │ │ │ ├── Getters.expected │ │ │ ├── Getters.ql │ │ │ ├── PythonProperties.expected │ │ │ ├── PythonProperties.ql │ │ │ ├── Setters.expected │ │ │ ├── Setters.ql │ │ │ └── properties.py │ ├── variables │ │ ├── definitions │ │ │ ├── test.expected │ │ │ ├── test.py │ │ │ └── test.ql │ │ └── scopes │ │ │ ├── free.expected │ │ │ ├── free.ql │ │ │ ├── globals.expected │ │ │ ├── globals.ql │ │ │ ├── locals.expected │ │ │ ├── locals.ql │ │ │ ├── lookup.expected │ │ │ ├── lookup.ql │ │ │ ├── scopes.expected │ │ │ ├── scopes.ql │ │ │ └── test.py │ └── web │ │ ├── bottle │ │ ├── HttpResponseSinks.expected │ │ ├── HttpResponseSinks.ql │ │ ├── HttpSources.expected │ │ ├── HttpSources.ql │ │ ├── Routing.expected │ │ ├── Routing.ql │ │ ├── Taint.expected │ │ ├── Taint.ql │ │ ├── options │ │ └── test.py │ │ ├── cherrypy │ │ ├── HttpResponseSinks.expected │ │ ├── HttpResponseSinks.ql │ │ ├── HttpSources.expected │ │ ├── HttpSources.ql │ │ ├── options │ │ ├── red.py │ │ └── test.py │ │ ├── client │ │ ├── requests │ │ │ ├── ClientHttpRequests.expected │ │ │ ├── ClientHttpRequests.ql │ │ │ ├── options │ │ │ └── test.py │ │ ├── six │ │ │ ├── ClientHttpRequests.expected │ │ │ ├── ClientHttpRequests.ql │ │ │ ├── options │ │ │ └── test.py │ │ └── stdlib │ │ │ ├── ClientHttpRequests.expected │ │ │ ├── ClientHttpRequests.ql │ │ │ ├── options │ │ │ └── test.py │ │ ├── django │ │ ├── HttpRedirectSinks.expected │ │ ├── HttpRedirectSinks.ql │ │ ├── HttpResponseSinks.expected │ │ ├── HttpResponseSinks.ql │ │ ├── HttpSources.expected │ │ ├── HttpSources.ql │ │ ├── SqlInjectionSinks.expected │ │ ├── SqlInjectionSinks.ql │ │ ├── options │ │ ├── sql.py │ │ ├── test_1x.py │ │ ├── test_2x_3x.py │ │ ├── views_1x.py │ │ └── views_2x_3x.py │ │ ├── falcon │ │ ├── HttpResponseSinks.expected │ │ ├── HttpResponseSinks.ql │ │ ├── HttpSources.expected │ │ ├── HttpSources.ql │ │ ├── Routing.expected │ │ ├── Routing.ql │ │ ├── Sinks.expected │ │ ├── Sinks.ql │ │ ├── Taint.expected │ │ ├── Taint.ql │ │ ├── options │ │ └── test.py │ │ ├── flask │ │ ├── HttpResponseSinks.expected │ │ ├── HttpResponseSinks.ql │ │ ├── HttpSources.expected │ │ ├── HttpSources.ql │ │ ├── Routing.expected │ │ ├── Routing.ql │ │ ├── Taint.expected │ │ ├── Taint.ql │ │ ├── options │ │ └── test.py │ │ ├── pyramid │ │ ├── HttpResponseSinks.expected │ │ ├── HttpResponseSinks.ql │ │ ├── HttpSources.expected │ │ ├── HttpSources.ql │ │ ├── Routing.expected │ │ ├── Routing.ql │ │ ├── Taint.expected │ │ ├── Taint.ql │ │ ├── options │ │ └── test.py │ │ ├── stdlib │ │ ├── HttpResponseSinks.expected │ │ ├── HttpResponseSinks.ql │ │ ├── HttpSources.expected │ │ ├── HttpSources.ql │ │ ├── TestTaint.expected │ │ ├── TestTaint.ql │ │ └── test.py │ │ ├── tornado │ │ ├── Classes.expected │ │ ├── Classes.ql │ │ ├── HttpRedirectSinks.expected │ │ ├── HttpRedirectSinks.ql │ │ ├── HttpResponseSinks.expected │ │ ├── HttpResponseSinks.ql │ │ ├── HttpSources.expected │ │ ├── HttpSources.ql │ │ ├── Taint.expected │ │ ├── Taint.ql │ │ ├── options │ │ └── test.py │ │ ├── turbogears │ │ ├── Controller.expected │ │ ├── Controller.ql │ │ ├── HttpResponseSinks.expected │ │ ├── HttpResponseSinks.ql │ │ ├── HttpSources.expected │ │ ├── HttpSources.ql │ │ ├── Taint.expected │ │ ├── Taint.ql │ │ ├── options │ │ └── test.py │ │ ├── twisted │ │ ├── Classes.expected │ │ ├── Classes.ql │ │ ├── HttpResponseSinks.expected │ │ ├── HttpResponseSinks.ql │ │ ├── HttpSources.expected │ │ ├── HttpSources.ql │ │ ├── Methods.expected │ │ ├── Methods.ql │ │ ├── Taint.expected │ │ ├── Taint.ql │ │ ├── options │ │ └── test.py │ │ └── zope │ │ ├── Test.expected │ │ ├── Test.ql │ │ ├── options │ │ └── test.py │ ├── qlpack.yml │ ├── queries.xml │ └── query-tests │ ├── Classes │ ├── Arguments │ │ ├── WrongNameForArgumentInClassInstantiation.expected │ │ ├── WrongNameForArgumentInClassInstantiation.qlref │ │ ├── WrongNumberArgumentsInClassInstantiation.expected │ │ ├── WrongNumberArgumentsInClassInstantiation.qlref │ │ └── wrong_arguments.py │ ├── conflicting │ │ ├── ConflictingAttributesInBaseClasses.expected │ │ ├── ConflictingAttributesInBaseClasses.qlref │ │ ├── odasa6643.py │ │ └── test.py │ ├── descriptors │ │ ├── MutatingDescriptor.expected │ │ ├── MutatingDescriptor.qlref │ │ └── test.py │ ├── equals-attr │ │ ├── DefineEqualsWhenAddingAttributes.expected │ │ ├── DefineEqualsWhenAddingAttributes.qlref │ │ └── test.py │ ├── equals-hash │ │ ├── DefineEqualsWhenAddingFields.expected │ │ ├── DefineEqualsWhenAddingFields.qlref │ │ └── attr_eq_test.py │ ├── incomplete-ordering │ │ ├── IncompleteOrdering.expected │ │ ├── IncompleteOrdering.qlref │ │ └── incomplete_ordering.py │ ├── init-calls-subclass-method │ │ ├── InitCallsSubclassMethod.expected │ │ ├── InitCallsSubclassMethod.qlref │ │ └── init_calls_subclass.py │ ├── missing-del │ │ ├── MissingCallToDel.expected │ │ ├── MissingCallToDel.qlref │ │ └── missing_del.py │ ├── missing-init │ │ ├── MissingCallToInit.expected │ │ ├── MissingCallToInit.qlref │ │ └── missing_init.py │ ├── multiple │ │ ├── SuperclassDelCalledMultipleTimes.expected │ │ ├── SuperclassDelCalledMultipleTimes.qlref │ │ ├── SuperclassInitCalledMultipleTimes.expected │ │ ├── SuperclassInitCalledMultipleTimes.qlref │ │ ├── multiple_del.py │ │ └── multiple_init.py │ ├── overwriting-attribute │ │ ├── OverwritingAttributeInSuperClass.expected │ │ ├── OverwritingAttributeInSuperClass.qlref │ │ └── overwriting_attribute.py │ ├── should-be-context-manager │ │ ├── ShouldBeContextManager.expected │ │ ├── ShouldBeContextManager.qlref │ │ └── should_be_context_manager.py │ ├── subclass-shadowing │ │ ├── SubclassShadowing.expected │ │ ├── SubclassShadowing.qlref │ │ └── subclass_shadowing.py │ ├── undefined-attribute │ │ ├── MaybeUndefinedClassAttribute.expected │ │ ├── MaybeUndefinedClassAttribute.qlref │ │ ├── UndefinedClassAttribute.expected │ │ ├── UndefinedClassAttribute.qlref │ │ └── undefined_attribute.py │ └── useless │ │ ├── UselessClass.expected │ │ ├── UselessClass.qlref │ │ └── test.py │ ├── Exceptions │ ├── general │ │ ├── CatchingBaseException.expected │ │ ├── CatchingBaseException.qlref │ │ ├── EmptyExcept.expected │ │ ├── EmptyExcept.qlref │ │ ├── IllegalExceptionHandlerType.expected │ │ ├── IllegalExceptionHandlerType.qlref │ │ ├── IllegalRaise.expected │ │ ├── IllegalRaise.qlref │ │ ├── IncorrectExceptOrder.expected │ │ ├── IncorrectExceptOrder.qlref │ │ ├── NotImplementedIsNotAnException.expected │ │ ├── NotImplementedIsNotAnException.qlref │ │ ├── exceptions_test.py │ │ └── pypy_test.py │ └── generators │ │ ├── UnguardedNextInGenerator.expected │ │ ├── UnguardedNextInGenerator.qlref │ │ └── test.py │ ├── Expressions │ ├── Arguments │ │ ├── WrongNameForArgumentInCall.expected │ │ ├── WrongNameForArgumentInCall.qlref │ │ ├── WrongNumberArgumentsInCall.expected │ │ ├── WrongNumberArgumentsInCall.qlref │ │ ├── mox.py │ │ ├── use_mox.py │ │ └── wrong_arguments.py │ ├── Formatting │ │ ├── MixedExplicitImplicitIn3101Format.expected │ │ ├── MixedExplicitImplicitIn3101Format.qlref │ │ ├── UnusedArgumentIn3101Format.expected │ │ ├── UnusedArgumentIn3101Format.qlref │ │ ├── UnusedNamedArgumentIn3101Format.expected │ │ ├── UnusedNamedArgumentIn3101Format.qlref │ │ ├── WrongNameInArgumentsFor3101Format.expected │ │ ├── WrongNameInArgumentsFor3101Format.qlref │ │ ├── WrongNumberArgumentsFor3101Format.expected │ │ ├── WrongNumberArgumentsFor3101Format.qlref │ │ ├── test.py │ │ └── unknown_format_string.py │ ├── Regex │ │ ├── BackspaceEscape.expected │ │ ├── BackspaceEscape.qlref │ │ ├── DuplicateCharacterInSet.expected │ │ ├── DuplicateCharacterInSet.qlref │ │ ├── MissingPartSpecialGroup.expected │ │ ├── MissingPartSpecialGroup.qlref │ │ ├── UnmatchableCaret.expected │ │ ├── UnmatchableCaret.qlref │ │ ├── UnmatchableDollar.expected │ │ ├── UnmatchableDollar.qlref │ │ ├── options │ │ └── test.py │ ├── callable │ │ ├── NonCallableCalled.expected │ │ ├── NonCallableCalled.qlref │ │ └── test.py │ ├── comparisons │ │ ├── UselessComparisonTest.expected │ │ ├── UselessComparisonTest.qlref │ │ └── test.py │ ├── eq │ │ ├── IncorrectComparisonUsingIs.expected │ │ ├── IncorrectComparisonUsingIs.qlref │ │ ├── NonPortableComparisonUsingIs.expected │ │ ├── NonPortableComparisonUsingIs.qlref │ │ └── expressions_test.py │ ├── general │ │ ├── CompareConstants.expected │ │ ├── CompareConstants.qlref │ │ ├── CompareIdenticalValues.expected │ │ ├── CompareIdenticalValues.qlref │ │ ├── CompareIdenticalValuesMissingSelf.expected │ │ ├── CompareIdenticalValuesMissingSelf.qlref │ │ ├── ContainsNonContainer.expected │ │ ├── ContainsNonContainer.qlref │ │ ├── DuplicateKeyInDictionaryLiteral.expected │ │ ├── DuplicateKeyInDictionaryLiteral.qlref │ │ ├── EqualsNone.expected │ │ ├── EqualsNone.qlref │ │ ├── ExpectedMappingForFormatString.expected │ │ ├── ExpectedMappingForFormatString.qlref │ │ ├── ExplcitCallToDel.expected │ │ ├── ExplicitCallToDel.expected │ │ ├── ExplicitCallToDel.qlref │ │ ├── HashedButNoHash.expected │ │ ├── HashedButNoHash.qlref │ │ ├── UnnecessaryLambda.expected │ │ ├── UnnecessaryLambda.qlref │ │ ├── UnsupportedFormatCharacter.expected │ │ ├── UnsupportedFormatCharacter.qlref │ │ ├── WrongNumberArgumentsForFormat.expected │ │ ├── WrongNumberArgumentsForFormat.qlref │ │ ├── _private.py │ │ ├── compare.py │ │ ├── expressions_test.py │ │ └── str_fmt_test.py │ ├── strings │ │ ├── UnintentionalImplicitStringConcatenation.expected │ │ ├── UnintentionalImplicitStringConcatenation.qlref │ │ └── test.py │ └── super │ │ ├── CallToSuperWrongClass.expected │ │ ├── CallToSuperWrongClass.qlref │ │ ├── test.py │ │ └── test_except.py │ ├── Functions │ ├── general │ │ ├── DeprecatedSliceMethod.expected │ │ ├── DeprecatedSliceMethod.qlref │ │ ├── ExplicitReturnInInit.expected │ │ ├── ExplicitReturnInInit.qlref │ │ ├── IncorrectRaiseInSpecialMethod.expected │ │ ├── IncorrectRaiseInSpecialMethod.qlref │ │ ├── InitIsGenerator.expected │ │ ├── InitIsGenerator.qlref │ │ ├── IterReturnsNonIterator.expected │ │ ├── IterReturnsNonIterator.qlref │ │ ├── IterReturnsNonSelf.expected │ │ ├── IterReturnsNonSelf.qlref │ │ ├── ModificationOfParameterWithDefault.expected │ │ ├── ModificationOfParameterWithDefault.qlref │ │ ├── NonCls.expected │ │ ├── NonCls.qlref │ │ ├── NonSelf.expected │ │ ├── NonSelf.qlref │ │ ├── OverlyComplexDelMethod.expected │ │ ├── OverlyComplexDelMethod.qlref │ │ ├── SignatureOverriddenMethod.expected │ │ ├── SignatureOverriddenMethod.qlref │ │ ├── SignatureSpecialMethods.expected │ │ ├── SignatureSpecialMethods.qlref │ │ ├── explicit_return_in_init.py │ │ ├── functions_test.py │ │ ├── mox.py │ │ ├── om_test.py │ │ ├── parameter_names.py │ │ ├── protocols.py │ │ ├── special.py │ │ ├── use_mox.py │ │ └── zope │ │ │ ├── __init__.py │ │ │ └── interface.py │ ├── overriding │ │ ├── IncorrectlyOverriddenMethod.expected │ │ ├── IncorrectlyOverriddenMethod.qlref │ │ ├── IncorrectlySpecifiedOverriddenMethod.expected │ │ ├── IncorrectlySpecifiedOverriddenMethod.qlref │ │ ├── SignatureOverriddenMethod.expected │ │ ├── SignatureOverriddenMethod.qlref │ │ ├── WrongNameForArgumentInCall.expected │ │ ├── WrongNameForArgumentInCall.qlref │ │ ├── WrongNumberArgumentsInCall.expected │ │ ├── WrongNumberArgumentsInCall.qlref │ │ └── test.py │ └── return_values │ │ ├── ConsistentReturns.expected │ │ ├── ConsistentReturns.qlref │ │ ├── ReturnConsistentTupleSizes.expected │ │ ├── ReturnConsistentTupleSizes.qlref │ │ ├── ReturnValueIgnored.expected │ │ ├── ReturnValueIgnored.qlref │ │ ├── UseImplicitNoneReturnValue.expected │ │ ├── UseImplicitNoneReturnValue.qlref │ │ └── functions_test.py │ ├── Imports │ ├── PyCheckerTests │ │ ├── ImportandImportFrom.expected │ │ ├── ImportandImportFrom.qlref │ │ ├── ModuleImportsItself.expected │ │ ├── ModuleImportsItself.qlref │ │ ├── imports_test.py │ │ ├── options │ │ ├── pkg_notok │ │ │ ├── __init__.py │ │ │ └── bar.py │ │ ├── pkg_ok │ │ │ ├── __init__.py │ │ │ ├── foo1.py │ │ │ ├── foo2.py │ │ │ ├── foo3.py │ │ │ ├── foo4.py │ │ │ └── foo5.py │ │ ├── test_module.py │ │ └── test_module2.py │ ├── cyclic-module-annotations-fp │ │ ├── ModuleLevelCyclicImport.expected │ │ ├── ModuleLevelCyclicImport.qlref │ │ ├── module1.py │ │ ├── module2.py │ │ ├── module3.py │ │ └── module4.py │ ├── cyclic-module-package-fp │ │ ├── false-negative │ │ │ ├── CyclicImport.expected │ │ │ ├── CyclicImport.qlref │ │ │ ├── ModuleLevelCyclicImport.expected │ │ │ ├── ModuleLevelCyclicImport.qlref │ │ │ ├── bar │ │ │ │ ├── __init__.py │ │ │ │ └── foo.py │ │ │ ├── options │ │ │ ├── package │ │ │ │ ├── __init__.py │ │ │ │ └── baz.py │ │ │ └── test.py │ │ └── true-negative │ │ │ ├── CyclicImport.expected │ │ │ ├── CyclicImport.qlref │ │ │ ├── ModuleLevelCyclicImport.expected │ │ │ ├── ModuleLevelCyclicImport.qlref │ │ │ ├── bar │ │ │ ├── __init__.py │ │ │ └── foo.py │ │ │ ├── options │ │ │ ├── package │ │ │ ├── __init__.py │ │ │ └── baz.py │ │ │ └── test.py │ ├── cyclic-module │ │ ├── CyclicImport.expected │ │ ├── CyclicImport.qlref │ │ ├── ModuleLevelCyclicImport.expected │ │ ├── ModuleLevelCyclicImport.qlref │ │ ├── main.py │ │ ├── module1.py │ │ ├── module10.py │ │ ├── module2.py │ │ ├── module3.py │ │ ├── module4.py │ │ ├── module5.py │ │ ├── module6.py │ │ ├── module7.py │ │ ├── module8.py │ │ ├── module9.py │ │ └── typing.py │ ├── deprecated │ │ ├── DeprecatedModule.expected │ │ ├── DeprecatedModule.qlref │ │ └── test.py │ ├── general │ │ ├── FromImportOfMutableAttribute.expected │ │ ├── FromImportOfMutableAttribute.qlref │ │ ├── ImportShadowedByLoopVar.expected │ │ ├── ImportShadowedByLoopVar.qlref │ │ ├── ImportStarUsed.expected │ │ ├── ImportStarUsed.qlref │ │ ├── Imports.expected │ │ ├── Imports.qlref │ │ ├── MultipleImport.expected │ │ ├── MultipleImport.qlref │ │ ├── UnintentionalImport.expected │ │ ├── UnintentionalImport.qlref │ │ ├── imports_mutable.py │ │ ├── imports_test.py │ │ ├── module.py │ │ ├── module1.py │ │ ├── module2.py │ │ ├── module_without_all.py │ │ ├── mutable_attr.py │ │ ├── mutates.py │ │ ├── mutates_in_test.py │ │ ├── options │ │ └── unittest │ │ │ └── __init__.py │ └── unused │ │ ├── UnusedImport.expected │ │ ├── UnusedImport.qlref │ │ ├── import_structure_1.py │ │ ├── import_structure_2.py │ │ ├── imports_test.py │ │ └── options │ ├── Lexical │ ├── ToDoComment │ │ ├── ToDoComment.expected │ │ ├── ToDoComment.qlref │ │ ├── lexical_test.py │ │ └── todo.py │ └── commented_out_code │ │ ├── CommentedOutCode.expected │ │ ├── CommentedOutCode.qlref │ │ ├── FCommentedOutCode.expected │ │ ├── FCommentedOutCode.qlref │ │ └── test.py │ ├── Metrics │ ├── cyclo │ │ ├── CyclomaticComplexity.expected │ │ ├── CyclomaticComplexity.qlref │ │ └── code.py │ ├── duplicate │ │ ├── duplicate_test.py │ │ ├── similar.py │ │ ├── with_import1.py │ │ └── with_import2.py │ ├── functions │ │ ├── FunctionStatementNestingDepth.expected │ │ ├── FunctionStatementNestingDepth.qlref │ │ └── test.py │ ├── imports │ │ ├── DirectImports.expected │ │ ├── DirectImports.qlref │ │ ├── TransitiveImports.expected │ │ ├── TransitiveImports.qlref │ │ ├── entry.py │ │ ├── module1.py │ │ ├── module2.py │ │ ├── module3.py │ │ └── module4.py │ ├── lines │ │ ├── CommentRatio.expected │ │ ├── CommentRatio.qlref │ │ ├── FLinesOfCode.expected │ │ ├── FLinesOfCode.qlref │ │ └── lines.py │ ├── ratios │ │ ├── CodeRatio.expected │ │ ├── CodeRatio.ql │ │ ├── CommentRatio.expected │ │ ├── CommentRatio.qlref │ │ ├── DocStringRatio.expected │ │ ├── DocStringRatio.qlref │ │ └── doc_string.py │ └── tests │ │ ├── FNumberOfTests.expected │ │ ├── FNumberOfTests.qlref │ │ ├── pytest.py │ │ └── test.py │ ├── Numerics │ ├── Pythagorean.expected │ ├── Pythagorean.qlref │ └── pythagorean_test.py │ ├── Resources │ ├── Dataflow.expected │ ├── Dataflow.ql │ ├── FileNotAlwaysClosed.expected │ ├── FileNotAlwaysClosed.qlref │ └── resources_test.py │ ├── Security │ ├── CVE-2018-1281 │ │ ├── BindToAllInterfaces.expected │ │ ├── BindToAllInterfaces.qlref │ │ ├── BindToAllInterfaces_test.py │ │ └── options │ ├── CWE-020-ExternalAPIs │ │ ├── ExternalAPIsUsedWithUntrustedData.expected │ │ ├── ExternalAPIsUsedWithUntrustedData.qlref │ │ ├── UntrustedDataToExternalAPI.expected │ │ ├── UntrustedDataToExternalAPI.qlref │ │ └── test.py │ ├── CWE-020 │ │ ├── IncompleteHostnameRegExp.expected │ │ ├── IncompleteHostnameRegExp.qlref │ │ ├── IncompleteUrlSubstringSanitization.expected │ │ ├── IncompleteUrlSubstringSanitization.qlref │ │ ├── hosttest.py │ │ └── urltest.py │ ├── CWE-022-PathInjection │ │ ├── PathInjection.expected │ │ ├── PathInjection.qlref │ │ ├── path_injection.py │ │ ├── test.py │ │ └── test_chaining.py │ ├── CWE-022-TarSlip │ │ ├── TarSlip.expected │ │ ├── TarSlip.qlref │ │ ├── options │ │ └── tarslip.py │ ├── CWE-078-py2 │ │ ├── CommandInjection.expected │ │ ├── CommandInjection.qlref │ │ ├── command_injection.py │ │ └── options │ ├── CWE-078 │ │ ├── CommandInjection.expected │ │ ├── CommandInjection.qlref │ │ ├── command_injection.py │ │ └── options │ ├── CWE-079 │ │ ├── Jinja2WithoutEscaping.expected │ │ ├── Jinja2WithoutEscaping.qlref │ │ ├── ReflectedXss.expected │ │ ├── ReflectedXss.qlref │ │ ├── jinja2_escaping.py │ │ ├── options │ │ └── reflected_xss.py │ ├── CWE-089 │ │ ├── SqlInjection.expected │ │ ├── SqlInjection.qlref │ │ └── sql_injection.py │ ├── CWE-094 │ │ ├── CodeInjection.expected │ │ ├── CodeInjection.qlref │ │ └── code_injection.py │ ├── CWE-209 │ │ ├── ExceptionInfo.expected │ │ ├── ExceptionInfo.ql │ │ ├── Exceptions.py │ │ ├── StackTraceExposure.expected │ │ ├── StackTraceExposure.qlref │ │ ├── Stacktrace.py │ │ ├── options │ │ └── test.py │ ├── CWE-215 │ │ ├── FlaskDebug.expected │ │ ├── FlaskDebug.qlref │ │ ├── options │ │ ├── settings.py │ │ └── test.py │ ├── CWE-295-MissingHostKeyValidation │ │ ├── MissingHostKeyValidation.expected │ │ ├── MissingHostKeyValidation.qlref │ │ └── paramiko_host_key.py │ ├── CWE-295-RequestWithoutValidation │ │ ├── RequestWithoutValidation.expected │ │ ├── RequestWithoutValidation.qlref │ │ ├── make_request.py │ │ └── options │ ├── CWE-312 │ │ ├── CleartextLogging.expected │ │ ├── CleartextLogging.qlref │ │ ├── CleartextStorage.expected │ │ ├── CleartextStorage.qlref │ │ ├── options │ │ ├── password_in_cookie.py │ │ └── test.py │ ├── CWE-326 │ │ ├── WeakCryptoKey.expected │ │ ├── WeakCryptoKey.qlref │ │ ├── test_example.py │ │ └── weak_crypto.py │ ├── CWE-327-InsecureProtocol │ │ ├── InsecureDefaultProtocol.expected │ │ ├── InsecureDefaultProtocol.qlref │ │ └── InsecureProtocol.py │ ├── CWE-327 │ │ ├── BrokenCryptoAlgorithm.expected │ │ ├── BrokenCryptoAlgorithm.qlref │ │ ├── InsecureProtocol.expected │ │ ├── InsecureProtocol.py │ │ ├── InsecureProtocol.qlref │ │ ├── TestNode.expected │ │ ├── TestNode.ql │ │ ├── options │ │ ├── test_cryptography.py │ │ └── test_pycrypto.py │ ├── CWE-377 │ │ ├── InsecureTemporaryFile.expected │ │ ├── InsecureTemporaryFile.py │ │ ├── InsecureTemporaryFile.qlref │ │ └── SecureTemporaryFile.py │ ├── CWE-502 │ │ ├── UnsafeDeserialization.expected │ │ ├── UnsafeDeserialization.qlref │ │ └── unsafe_deserialization.py │ ├── CWE-601 │ │ ├── UrlRedirect.expected │ │ ├── UrlRedirect.qlref │ │ ├── options │ │ └── test.py │ ├── CWE-732 │ │ ├── WeakFilePermissions.expected │ │ ├── WeakFilePermissions.qlref │ │ ├── options │ │ └── test.py │ ├── CWE-798 │ │ ├── HardcodedCredentials.expected │ │ ├── HardcodedCredentials.qlref │ │ └── test.py │ └── lib │ │ ├── Crypto │ │ ├── Cipher │ │ │ ├── AES.py │ │ │ ├── ARC4.py │ │ │ └── __init__.py │ │ ├── PublicKey │ │ │ ├── DSA.py │ │ │ ├── RSA.py │ │ │ └── __init__.py │ │ └── __init__.py │ │ ├── airspeed.py │ │ ├── base64.py │ │ ├── bottle.py │ │ ├── cheetah │ │ └── Template │ │ │ └── __init__.py │ │ ├── cherrypy │ │ ├── __init__.py │ │ └── _helper.py │ │ ├── chevron.py │ │ ├── cryptography │ │ ├── __init__.py │ │ └── hazmat │ │ │ ├── __init__.py │ │ │ └── primitives │ │ │ ├── __init__.py │ │ │ ├── asymmetric │ │ │ ├── __init__.py │ │ │ ├── dsa.py │ │ │ ├── ec.py │ │ │ └── rsa.py │ │ │ └── ciphers │ │ │ ├── __init__.py │ │ │ └── algorithms.py │ │ ├── dill.py │ │ ├── django │ │ ├── __init__.py │ │ ├── conf │ │ │ ├── __init__.py │ │ │ └── urls.py │ │ ├── db │ │ │ ├── __init__.py │ │ │ └── models │ │ │ │ ├── __init__.py │ │ │ │ └── expressions.py │ │ ├── http │ │ │ ├── __init__.py │ │ │ ├── request.py │ │ │ └── response.py │ │ ├── shortcuts.py │ │ ├── urls.py │ │ └── views │ │ │ ├── __init__.py │ │ │ └── generic.py │ │ ├── fabric │ │ ├── __init__.py │ │ ├── api.py │ │ ├── connection.py │ │ ├── group.py │ │ └── tasks.py │ │ ├── falcon │ │ ├── __init__.py │ │ ├── api.py │ │ ├── request.py │ │ └── response.py │ │ ├── flask │ │ ├── __init__.py │ │ ├── globals.py │ │ ├── urls.py │ │ └── views.py │ │ ├── invoke │ │ ├── __init__.py │ │ ├── context.py │ │ └── tasks.py │ │ ├── jinja2.py │ │ ├── libxml2 │ │ └── __init__.py │ │ ├── lxml │ │ ├── __init__.py │ │ └── etree.py │ │ ├── marshall.py │ │ ├── os │ │ ├── __init__.py │ │ └── path.py │ │ ├── paramiko │ │ ├── __init__.py │ │ └── client.py │ │ ├── pickle.py │ │ ├── pyOpenSSL │ │ ├── SSL.py │ │ └── __init__.py │ │ ├── pyramid │ │ ├── __init__.py │ │ ├── response.py │ │ └── view.py │ │ ├── requests.py │ │ ├── subprocess.py │ │ ├── tg.py │ │ ├── tornado │ │ ├── __init__.py │ │ └── web.py │ │ ├── traceback.py │ │ ├── twisted │ │ ├── __init__.py │ │ └── web │ │ │ ├── __init__.py │ │ │ ├── http.py │ │ │ └── resource.py │ │ ├── yaml.py │ │ └── zope │ │ ├── __init__.py │ │ └── interface │ │ └── __init__.py │ ├── Statements │ ├── DocStrings │ │ ├── DocStrings.expected │ │ ├── DocStrings.py │ │ └── DocStrings.qlref │ ├── ReturnOrYieldOutsideFunction │ │ ├── ReturnOrYieldOutsideFunction.expected │ │ ├── ReturnOrYieldOutsideFunction.qlref │ │ └── ReturnOrYieldOutsideFunction_test.py │ ├── ReturnOrYieldOutsideOfFunction │ │ └── ReturnOrYieldOutsideOfFunction.expected │ ├── asserts │ │ ├── AssertLiteralConstant.expected │ │ ├── AssertLiteralConstant.qlref │ │ ├── AssertOnTuple.expected │ │ ├── AssertOnTuple.qlref │ │ ├── SideEffectInAssert.expected │ │ ├── SideEffectInAssert.qlref │ │ ├── assert.py │ │ └── side_effect.py │ ├── exit │ │ ├── UseOfExit.expected │ │ ├── UseOfExit.qlref │ │ └── test.py │ ├── general │ │ ├── BreakOrReturnInFinally.expected │ │ ├── BreakOrReturnInFinally.qlref │ │ ├── C_StyleParentheses.expected │ │ ├── C_StyleParentheses.qlref │ │ ├── ConstantInConditional.expected │ │ ├── ConstantInConditional.qlref │ │ ├── MismatchInMultipleAssignment.expected │ │ ├── MismatchInMultipleAssignment.qlref │ │ ├── ModificationOfLocals.expected │ │ ├── ModificationOfLocals.qlref │ │ ├── NestedLoopsSameVariable.expected │ │ ├── NestedLoopsSameVariable.qlref │ │ ├── NestedLoopsSameVariableWithReuse.expected │ │ ├── NestedLoopsSameVariableWithReuse.qlref │ │ ├── NonIteratorInForLoop.expected │ │ ├── NonIteratorInForLoop.qlref │ │ ├── RedundantAssignment.expected │ │ ├── RedundantAssignment.qlref │ │ ├── ShouldUseWithStatement.expected │ │ ├── ShouldUseWithStatement.qlref │ │ ├── StringConcatenationInLoop.expected │ │ ├── StringConcatenationInLoop.qlref │ │ ├── UnnecessaryDelete.expected │ │ ├── UnnecessaryDelete.qlref │ │ ├── UnnecessaryElseClause.expected │ │ ├── UnnecessaryElseClause.qlref │ │ ├── UnnecessaryPass.expected │ │ ├── UnnecessaryPass.qlref │ │ ├── nested.py │ │ ├── performance.py │ │ ├── statements_test.py │ │ └── test.py │ ├── no_effect │ │ ├── StatementNoEffect.expected │ │ ├── StatementNoEffect.qlref │ │ ├── UnusedExceptionObject.expected │ │ ├── UnusedExceptionObject.qlref │ │ ├── assert_raises.py │ │ ├── notebook.py │ │ ├── options │ │ └── test.py │ ├── unreachable │ │ ├── UnreachableCode.expected │ │ ├── UnreachableCode.qlref │ │ ├── imports.py │ │ └── test.py │ └── unreachable_nonlocal │ │ ├── UnreachableCode.expected │ │ ├── UnreachableCode.qlref │ │ └── nonlocal.py │ ├── Testing │ ├── ImpreciseAssert.expected │ ├── ImpreciseAssert.qlref │ └── test.py │ ├── Variables │ ├── capture │ │ ├── LoopVariableCapture.expected │ │ ├── LoopVariableCapture.qlref │ │ └── test.py │ ├── general │ │ ├── Global.expected │ │ ├── Global.qlref │ │ ├── GlobalAtModuleLevel.expected │ │ ├── GlobalAtModuleLevel.qlref │ │ ├── ShadowBuiltin.expected │ │ ├── ShadowBuiltin.qlref │ │ ├── ShadowGlobal.expected │ │ ├── ShadowGlobal.qlref │ │ ├── pytest │ │ │ └── __init__.py │ │ ├── random_string.py │ │ └── variables_test.py │ ├── multiple │ │ ├── MultiplyDefined.expected │ │ ├── MultiplyDefined.qlref │ │ └── uselesscode_test.py │ ├── undefined │ │ ├── UndefinedExport.expected │ │ ├── UndefinedExport.qlref │ │ ├── UndefinedGlobal.expected │ │ ├── UndefinedGlobal.py │ │ ├── UndefinedGlobal.qlref │ │ ├── UninitializedLocal.expected │ │ ├── UninitializedLocal.py │ │ ├── UninitializedLocal.qlref │ │ ├── decorated_exports.py │ │ ├── exports.py │ │ ├── import_star.py │ │ ├── module1.py │ │ ├── odasa3987.py │ │ ├── odasa6418.py │ │ ├── odasa6800.py │ │ ├── options │ │ ├── regression.py │ │ ├── tokens.py │ │ ├── ud_helper.py │ │ ├── unknown_import.py │ │ ├── unknown_import_star.py │ │ └── uses_exec.py │ ├── unused │ │ ├── SuspiciousUnusedLoopIterationVariable.expected │ │ ├── SuspiciousUnusedLoopIterationVariable.qlref │ │ ├── UnusedLocalVariable.expected │ │ ├── UnusedLocalVariable.qlref │ │ ├── UnusedModuleVariable.expected │ │ ├── UnusedModuleVariable.qlref │ │ ├── UnusedParameter.expected │ │ ├── UnusedParameter.qlref │ │ ├── lazy_import.py │ │ ├── test.py │ │ ├── type_annotation_fp.py │ │ └── variables_test.py │ └── unused_local_nonlocal │ │ ├── UnusedLocalVariable.expected │ │ ├── UnusedLocalVariable.qlref │ │ └── variables_test.py │ ├── analysis │ ├── Consistency │ │ ├── Consistency.expected │ │ ├── Consistency.qlref │ │ ├── package │ │ │ └── __init__.py │ │ └── test.py │ ├── jump_to_defn │ │ ├── Definitions.expected │ │ ├── Definitions.qlref │ │ ├── module.py │ │ ├── package │ │ │ ├── __init__.py │ │ │ └── mod.py │ │ └── test.py │ ├── pointsto │ │ ├── FailedInference.expected │ │ ├── FailedInference.qlref │ │ ├── KeyPointsToFailure.expected │ │ ├── KeyPointsToFailure.qlref │ │ ├── Pruned.expected │ │ ├── Pruned.qlref │ │ └── test.py │ └── suppression │ │ ├── AlertSuppression.expected │ │ ├── AlertSuppression.qlref │ │ ├── test.py │ │ └── testWindows.py │ └── options ├── tools └── recorded-call-graph-metrics │ ├── .flake8 │ ├── .gitignore │ ├── .isort.cfg │ ├── README.md │ ├── example │ ├── simple.py │ └── simple.xml │ ├── helper.sh │ ├── projects.json │ ├── ql │ ├── lib │ │ ├── BytecodeExpr.qll │ │ └── RecordedCalls.qll │ ├── qlpack.yml │ └── query │ │ ├── InternalMetrics.ql │ │ ├── Metrics.ql │ │ ├── PointsToFound.ql │ │ ├── PointsToNotFound.ql │ │ ├── UnidentifiedRecordedCalls.ql │ │ └── UnknownOpcode.ql │ ├── requirements.txt │ ├── setup.py │ ├── src │ └── cg_trace │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── bytecode_reconstructor.py │ │ ├── cmdline.py │ │ ├── exporter.py │ │ ├── generate_bytecode_expr_qll.py │ │ ├── main.py │ │ ├── settings.py │ │ ├── tracer.py │ │ └── utils.py │ └── tests │ ├── create-test-db.sh │ └── python-src │ ├── BUILD_LIST.py │ ├── BUILD_TUPLE.py │ ├── CALL_FUNCTION_EX.py │ ├── __getitem__.py │ ├── builtins.py │ ├── class-simple.py │ ├── dict-get.py │ ├── getsockname.py │ ├── io-builtin.py │ ├── iteration.py │ ├── multiple-on-one-line.py │ ├── problem-1.py │ ├── problem-2.py │ ├── simple.py │ └── with-exit.py └── upgrades ├── 62a30d37a729670a8cc3c67b4dad81f1983865f8 ├── old.dbscheme ├── semmlecode.python.dbscheme └── upgrade.properties ├── f635b392038a494915307f913657cd3058f9b476 ├── old.dbscheme ├── py_exprs.ql ├── semmlecode.python.dbscheme └── upgrade.properties └── qlpack.yml /.codeqlmanifest.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/.codeqlmanifest.json -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | end_of_line = lf 3 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/.gitattributes -------------------------------------------------------------------------------- /.github/labeler.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/.github/labeler.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/.gitignore -------------------------------------------------------------------------------- /.lgtm.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/.lgtm.yml -------------------------------------------------------------------------------- /.vscode/.gitattributes: -------------------------------------------------------------------------------- 1 | *.json linguist-language=JSON-with-Comments 2 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/.vscode/extensions.json -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "omnisharp.autoStart": false 3 | } 4 | -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/.vscode/tasks.json -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/CODEOWNERS -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/README.md -------------------------------------------------------------------------------- /config/opcode-qldoc.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/config/opcode-qldoc.py -------------------------------------------------------------------------------- /config/sync-files.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/config/sync-files.py -------------------------------------------------------------------------------- /cpp/ql/examples/queries.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /cpp/ql/src/.project: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/cpp/ql/src/.project -------------------------------------------------------------------------------- /cpp/ql/src/.qlpath: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/cpp/ql/src/.qlpath -------------------------------------------------------------------------------- /cpp/ql/src/Options.qll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/cpp/ql/src/Options.qll -------------------------------------------------------------------------------- /cpp/ql/src/cpp.qll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/cpp/ql/src/cpp.qll -------------------------------------------------------------------------------- /cpp/ql/src/default.qll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/cpp/ql/src/default.qll -------------------------------------------------------------------------------- /cpp/ql/src/objc.qll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/cpp/ql/src/objc.qll -------------------------------------------------------------------------------- /cpp/ql/src/printAst.ql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/cpp/ql/src/printAst.ql -------------------------------------------------------------------------------- /cpp/ql/src/qlpack.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/cpp/ql/src/qlpack.yml -------------------------------------------------------------------------------- /cpp/ql/src/queries.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /cpp/ql/test/.project: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/cpp/ql/test/.project -------------------------------------------------------------------------------- /cpp/ql/test/.qlpath: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/cpp/ql/test/.qlpath -------------------------------------------------------------------------------- /cpp/ql/test/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/cpp/ql/test/README.md -------------------------------------------------------------------------------- /cpp/ql/test/examples/BadLocking/AV Rule 107.qlref: -------------------------------------------------------------------------------- 1 | jsf/4.13 Functions/AV Rule 107.ql 2 | -------------------------------------------------------------------------------- /cpp/ql/test/examples/expressions/ConvertVirtualFunctionPointer.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/examples/expressions/PrintAST.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/cpp/PrintAST.ql -------------------------------------------------------------------------------- /cpp/ql/test/examples/expressions/ReferenceTo.cpp: -------------------------------------------------------------------------------- 1 | int& ReferenceTo(int *i) { 2 | return *i; 3 | } -------------------------------------------------------------------------------- /cpp/ql/test/format.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/cpp/ql/test/format.json -------------------------------------------------------------------------------- /cpp/ql/test/header-variant-tests/clang-pch/a.h: -------------------------------------------------------------------------------- 1 | #define ONE 1 2 | -------------------------------------------------------------------------------- /cpp/ql/test/header-variant-tests/clang-pch/b.h: -------------------------------------------------------------------------------- 1 | #define THREE 3 2 | -------------------------------------------------------------------------------- /cpp/ql/test/header-variant-tests/clang-pch/d.h: -------------------------------------------------------------------------------- 1 | enum { SEVENTEEN = 17 }; 2 | -------------------------------------------------------------------------------- /cpp/ql/test/header-variant-tests/clang-pch/h1.h: -------------------------------------------------------------------------------- 1 | 2 | #define H1 3 | 4 | -------------------------------------------------------------------------------- /cpp/ql/test/header-variant-tests/clang-pch/h2.h: -------------------------------------------------------------------------------- 1 | 2 | #define H2 3 | 4 | -------------------------------------------------------------------------------- /cpp/ql/test/header-variant-tests/iquote/dir1/a.h: -------------------------------------------------------------------------------- 1 | static int dir1_a = __COUNTER__; 2 | -------------------------------------------------------------------------------- /cpp/ql/test/header-variant-tests/iquote/dir1/b.h: -------------------------------------------------------------------------------- 1 | static int dir1_b = __COUNTER__; 2 | -------------------------------------------------------------------------------- /cpp/ql/test/header-variant-tests/iquote/dir2/a.h: -------------------------------------------------------------------------------- 1 | static int dir2_a = __COUNTER__; 2 | -------------------------------------------------------------------------------- /cpp/ql/test/header-variant-tests/isysroot/other/b.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/header-variant-tests/isysroot/usr/include/a.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/header-variant-tests/microsoft-pch/a.h: -------------------------------------------------------------------------------- 1 | #define A 1 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/CPP-205/diags.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/CPP-206/CPP-206.expected: -------------------------------------------------------------------------------- 1 | | 0 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/CPP-206/CPP-206.ql: -------------------------------------------------------------------------------- 1 | import cpp 2 | 3 | select count(Diagnostic d) 4 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/CPP-207/CPP-207.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/CPP-207/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --edg --microsoft 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/abi/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --expect_errors 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/anachronisms/virtfunptrexpr.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/arguments/arguments.c: -------------------------------------------------------------------------------- 1 | // semmle-extractor-options: -Werror 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/atomic/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --clang 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/attributes/enumerators/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --clang 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/blocks/c/exprs.ql: -------------------------------------------------------------------------------- 1 | import cpp 2 | 3 | from Expr e 4 | select e 5 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/blocks/c/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: -fblocks 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/blocks/capture/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: -fblocks 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/blocks/cpp/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: -fblocks 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/blocks/deduplication/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: -fblocks 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/bugs/odasa-2709/one.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/bugs/odasa-2709/test1.c: -------------------------------------------------------------------------------- 1 | void foo(int x) { 2 | } 3 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/builtins/edg/intaddr.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/c_overload/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --clang 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/clang_builtin_macros/bar.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/clang_builtin_macros/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --edg --clang 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/clang_cpp14_17/test.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/clang_cpp14_17/test.ql: -------------------------------------------------------------------------------- 1 | select 1 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/comments/comments/shared2.c: -------------------------------------------------------------------------------- 1 | 2 | #include "shared.h" 3 | 4 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/conditions/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --expect_errors 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/conditions/vars.ql: -------------------------------------------------------------------------------- 1 | import cpp 2 | 3 | from Variable v 4 | select v 5 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/constants/.gitattributes: -------------------------------------------------------------------------------- 1 | constants.cpp text eol=lf 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/constants/addresses/addresses.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/controlflow/assume/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --microsoft 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/controlflow/controlflow/SsaCompleteness.expected: -------------------------------------------------------------------------------- 1 | | 0 | 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/controlflow/controlflow/SsaCorrespondence.expected: -------------------------------------------------------------------------------- 1 | | 0 | 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/controlflow/controlflow/SsaDominance.expected: -------------------------------------------------------------------------------- 1 | | 0 | 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/controlflow/controlflow/SsaUniqueness.expected: -------------------------------------------------------------------------------- 1 | | 0 | 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/controlflow/dominance/dominatedByStart.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/controlflow/dominance/dominatorExists.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/controlflow/dominance/dominatorUnique.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/conversions/consistency.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/cpp/ASTConsistency.ql 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/dataflow/DefaultTaintTracking/annotate_path_to_sink/tainted.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/dataflow/DefaultTaintTracking/annotate_sinks_only/tainted.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/dataflow/DefaultTaintTracking/globals/global.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/dataflow/additional-flow-to-parameter/standardFlow.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/dataflow/dataflow-tests/test.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/dataflow/fields/flow.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/dataflow/recursion/chained_use.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/dataflow/recursion/recursion.c: -------------------------------------------------------------------------------- 1 | void f() { 2 | } 3 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/dataflow/taint-tests/taint.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/defuse/definitionUsePairEquivalence.expected: -------------------------------------------------------------------------------- 1 | | 0 | 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/diagnostics/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --expect_errors 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/digraphs/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --gnu_version 40801 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/enums/multi_file/a.c: -------------------------------------------------------------------------------- 1 | 2 | enum foo { 3 | bar = 23 4 | }; 5 | 6 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/files/c.c: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/funcdname/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --microsoft 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/functionpointerish/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: -fblocks 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/functions/fde_get_block/fde_get_block.expected: -------------------------------------------------------------------------------- 1 | | 3 | 4 | 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/identity_string/identity_string.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/includes/include_next/b/loop.h: -------------------------------------------------------------------------------- 1 | 2 | #include_next 3 | 4 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/includes/includes/bar.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/ir/constants/constants.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/ir/escape/escape.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/ir/escape/ssa_escape.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/ir/ir/PrintAST.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/cpp/PrintAST.ql -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/ir/ir/raw_ir.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/cpp/ir/implementation/raw/PrintIR.ql -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/ir/points_to/points_to.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/ir/ssa/aliased_ssa_ir_unsound.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/cpp/ir/PrintIR.ql -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/ir/types/irtypes.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/lambdas/cfg/reachability.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/languages/a.c: -------------------------------------------------------------------------------- 1 | 2 | #include "h.h" 3 | 4 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/languages/h.h: -------------------------------------------------------------------------------- 1 | 2 | char *ns[3]; 3 | 4 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/literals/aggregates/count.expected: -------------------------------------------------------------------------------- 1 | | 1594324 | 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/macros/affects/affects.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/macros/arguments/split1.h: -------------------------------------------------------------------------------- 1 | top( 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/macros/arguments/split2.h: -------------------------------------------------------------------------------- 1 | 1) 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/multiple_declarations/functions/arity2.c: -------------------------------------------------------------------------------- 1 | int f(int, int); 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/multiple_declarations/functions/count_f.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/multiple_declarations/macroinvocations/b.c: -------------------------------------------------------------------------------- 1 | #include "header.h" 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/opts/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --microsoft 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/parameters/parameters/Parameters2.expected: -------------------------------------------------------------------------------- 1 | | 0 | 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/permissive/accesses.expected: -------------------------------------------------------------------------------- 1 | | permissive.cpp:6:5:6:7 | str | 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/predefines/expr.ql: -------------------------------------------------------------------------------- 1 | import cpp 2 | 3 | from Expr e 4 | select e 5 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/preprocessor/hashing/hashing/locb.c: -------------------------------------------------------------------------------- 1 | 2 | #include "loch.h" 3 | 4 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/preprocessor/macroinvocations/nested.h: -------------------------------------------------------------------------------- 1 | 2 | // ... 3 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/preprocessor/preprocessor/a.h: -------------------------------------------------------------------------------- 1 | #include_next "a.h" 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/preprocessor/preprocessor/more_headers/a.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/rangeanalysis/RangeSSA/RangeSsaCompleteness.expected: -------------------------------------------------------------------------------- 1 | | 0 | 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/rangeanalysis/RangeSSA/RangeSsaCorrespondence.expected: -------------------------------------------------------------------------------- 1 | | 0 | 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/rangeanalysis/RangeSSA/RangeSsaDominance.expected: -------------------------------------------------------------------------------- 1 | | 0 | 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/rangeanalysis/RangeSSA/RangeSsaUniqueness.expected: -------------------------------------------------------------------------------- 1 | | 0 | 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/scopes/scopes/Scopes2.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/templates/ambiguous_cctor/ambiguous_cctor.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/templates/isfromtemplateinstantiation/template_is_template.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/templates/prototype_bodies/add_expr.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/templates/prototype_bodies/call_operands.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/templates/prototype_bodies/initialiser.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/ti_compiler/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --edg --ti 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/type_sizes/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: -fblocks 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/typedefs/ODASA-6095.cpp: -------------------------------------------------------------------------------- 1 | #include "ODASA-6095-B.hpp" 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/typedefs/ODASA-6095.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/types/__wchar_t/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --microsoft 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/types/integral_types/integral_types.cpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/types/pointertypes/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: -std=c99 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/types/segfault/segfault.c: -------------------------------------------------------------------------------- 1 | 2 | void f(enum E *e) { 3 | } 4 | 5 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/unions/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --microsoft 2 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/unnamed/test.c: -------------------------------------------------------------------------------- 1 | 2 | int *a = (int[]){}; 3 | 4 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/valuenumbering/GlobalValueNumbering/ast_uniqueness.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/valuenumbering/GlobalValueNumbering/ir_uniqueness.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/valuenumbering/HashCons/Uniqueness.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/variables/global/a.h: -------------------------------------------------------------------------------- 1 | 2 | extern int is[4]; 3 | 4 | -------------------------------------------------------------------------------- /cpp/ql/test/library-tests/variables/global/b.c: -------------------------------------------------------------------------------- 1 | 2 | #include "a.h" 3 | 4 | -------------------------------------------------------------------------------- /cpp/ql/test/queries.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/AlertSuppression/.gitattributes: -------------------------------------------------------------------------------- 1 | tstWindows.c eol=crlf 2 | -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/AlertSuppression/AlertSuppression.qlref: -------------------------------------------------------------------------------- 1 | AlertSuppression.ql 2 | -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/Best Practices/Unused Entities/UnusedIncludes/g: -------------------------------------------------------------------------------- 1 | // g 2 | -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/Critical/DeadCodeGoto/DeadCodeGoto.qlref: -------------------------------------------------------------------------------- 1 | Critical/DeadCodeGoto.ql 2 | -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/Critical/MemoryFreed/MemoryMayNotBeFreed.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/Critical/NewFree/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --microsoft 2 | -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/Critical/SizeCheck/SizeCheck.qlref: -------------------------------------------------------------------------------- 1 | Critical/SizeCheck.ql 2 | -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/Critical/SizeCheck/SizeCheck2.qlref: -------------------------------------------------------------------------------- 1 | Critical/SizeCheck2.ql 2 | -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OffsetUseBeforeRangeCheck.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverrunWrite.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverrunWriteFloat.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/Summary/LinesOfCode.expected: -------------------------------------------------------------------------------- 1 | | 93 | 2 | -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/Summary/LinesOfCode.qlref: -------------------------------------------------------------------------------- 1 | Summary/LinesOfCode.ql 2 | -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/Summary/empty-file.cpp: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/definitions/definitions.qlref: -------------------------------------------------------------------------------- 1 | definitions.ql 2 | -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/definitions/include.h: -------------------------------------------------------------------------------- 1 | // include.h 2 | -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/definitions/locationInfo.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/jsf/4.06 Pre-Processing Directives/AV Rule 32/test.H: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/jsf/4.06 Pre-Processing Directives/AV Rule 32/test.xpm: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/jsf/4.06 Pre-Processing Directives/AV Rule 32/test2.c: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/jsf/4.07 Header Files/AV Rule 35/data.h: -------------------------------------------------------------------------------- 1 | 3, 4, 5 -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/jsf/4.09 Style/AV Rule 53 54/test: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/jsf/4.09 Style/AV Rule 53 54/test'.c: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/jsf/4.09 Style/AV Rule 53 54/test'.h: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/jsf/4.09 Style/AV Rule 53 54/test.H: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/jsf/4.09 Style/AV Rule 53 54/test.abc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/jsf/4.09 Style/AV Rule 53 54/test.c++: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/query-tests/jsf/4.09 Style/AV Rule 53 54/test.hpp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/successor-tests/dostmt/dostmt03.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/successor-tests/dostmt/dostmt05.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/successor-tests/forstmt/shortforstmt/shortforstmt03.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/successor-tests/forstmt/shortforstmt/shortforstmt05.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/successor-tests/ifstmt/ifelsestmt/ifelsestmt03.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/successor-tests/ifstmt/ifelsestmt/ifelsestmt05.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/successor-tests/ifstmt/ifstmt/ifstmt03.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/successor-tests/ifstmt/ifstmt/ifstmt05.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/successor-tests/whilestmt/whilestmt03.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cpp/ql/test/successor-tests/whilestmt/whilestmt05.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /csharp/.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/csharp/.editorconfig -------------------------------------------------------------------------------- /csharp/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/csharp/.gitignore -------------------------------------------------------------------------------- /csharp/CSharp.sln: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/csharp/CSharp.sln -------------------------------------------------------------------------------- /csharp/ql/examples/queries.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/src/default.qll: -------------------------------------------------------------------------------- 1 | import csharp 2 | -------------------------------------------------------------------------------- /csharp/ql/src/experimental/ir/PrintIR.qll: -------------------------------------------------------------------------------- 1 | import implementation.unaliased_ssa.PrintIR 2 | -------------------------------------------------------------------------------- /csharp/ql/src/experimental/ir/implementation/raw/internal/desugar/Using.qll: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/src/queries.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/.gitignore: -------------------------------------------------------------------------------- 1 | csharp.log 2 | db 3 | output 4 | tmpdb* 5 | -------------------------------------------------------------------------------- /csharp/ql/test/experimental/ir/ir/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/arguments/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/assemblies/assemblies.expected: -------------------------------------------------------------------------------- 1 | | Test passed | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/assignments/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/attributes/Attributes1.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/attributes/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/cil/pdbs/Pdbs.cs: -------------------------------------------------------------------------------- 1 | // semmle-extractor-options: --cil --pdb 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/comments/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/compilations/CompilerError.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/compilations/CompilerError.qlref: -------------------------------------------------------------------------------- 1 | Diagnostics/CompilerError.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/compilations/CompilerMessage.qlref: -------------------------------------------------------------------------------- 1 | Diagnostics/CompilerMessage.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/compilations/ExtractorError.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/compilations/ExtractorMessage.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/constructors/Constructors1.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/constructors/Constructors2.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/constructors/Constructors4.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/constructors/Destructors2.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/constructors/Destructors3.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/constructors/Destructors4.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/constructors/Destructors5.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/constructors/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/conversion/operator/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/csharp6/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/csharp7.1/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/csharp7.2/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/csharp7.3/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/csharp7/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/csharp8/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/csharp9/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/dataflow/defuse/defUseEquivalence.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/dataflow/defuse/parameterUseEquivalence.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/dataflow/defuse/useUseEquivalence.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/dataflow/signanalysis/MissingSign.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/dataflow/ssa-large/countssa.expected: -------------------------------------------------------------------------------- 1 | | 5002 | 2500 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/dataflow/ssa/BaseSsaConsistency.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/dataflow/ssa/SsaConsistency.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/dataflow/tuples/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/definitions/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/definitions/definitions.qlref: -------------------------------------------------------------------------------- 1 | definitions.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/delegates/Delegates3.expected: -------------------------------------------------------------------------------- 1 | | ContextCallback | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/delegates/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/dynamic/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/encoding/sbcs.expected: -------------------------------------------------------------------------------- 1 | | 0 | \ufffd | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/enums/Enums4.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/enums/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/events/Events10.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/events/Events11.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/events/Events12.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/events/Events5.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/events/Events6.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/events/Events8.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/events/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/exceptions/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/expressions/Cast3.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/expressions/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/extractor/longstrings/LongStrings.expected: -------------------------------------------------------------------------------- 1 | | Test passed | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/fields/Constants4.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/fields/Fields10.expected: -------------------------------------------------------------------------------- 1 | | MaxValue | Decimal | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/fields/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/filters/ClassifyFiles/File.g.cs: -------------------------------------------------------------------------------- 1 | 2 | class C4 3 | { 4 | } 5 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/generatedcode/file.cs: -------------------------------------------------------------------------------- 1 | 2 | class C1 3 | { 4 | } 5 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/generatedcode/file.designer.cs: -------------------------------------------------------------------------------- 1 | 2 | class C2 3 | { 4 | } 5 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/generatedcode/file.feature.cs: -------------------------------------------------------------------------------- 1 | 2 | class C3 3 | { 4 | } 5 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/generatedcode/file.g.cs: -------------------------------------------------------------------------------- 1 | 2 | class C4 3 | { 4 | } 5 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/generics/ConsistencyChecks.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/generics/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/goto/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/indexers/Indexers1.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/indexers/Indexers11.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/indexers/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/initializers/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/linq/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/members/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/methods/Parameters4.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/methods/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/namespaces/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/nestedtypes/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/operators/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/partial/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/properties/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/properties/Properties14.expected: -------------------------------------------------------------------------------- 1 | | Count | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/regressions/DanglingFieldAccess.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/statements/Block1.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/statements/Block2.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/statements/Block3.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/statements/Do1.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/statements/For1.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/statements/Foreach1.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/statements/If1.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/statements/Lock1.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/statements/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/statements/TryCatch1.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/statements/Using1.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/statements/While1.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/statements/YieldBreak1.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/statements/YieldReturn1.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/statements/YieldReturn2.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/statements/YieldReturn3.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/types/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/types/Types36.expected: -------------------------------------------------------------------------------- 1 | | System.Collections.IEnumerable | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/library-tests/unsafe/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/csharp/PrintAst.ql -------------------------------------------------------------------------------- /csharp/ql/test/queries.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /csharp/ql/test/query-tests/AlertSuppression/AlertSuppression.qlref: -------------------------------------------------------------------------------- 1 | AlertSuppression.ql -------------------------------------------------------------------------------- /csharp/ql/test/query-tests/Concurrency/LockOrder/LockOrder.qlref: -------------------------------------------------------------------------------- 1 | Concurrency/LockOrder.ql -------------------------------------------------------------------------------- /csharp/ql/test/query-tests/Concurrency/LockThis/LockThis.qlref: -------------------------------------------------------------------------------- 1 | Concurrency/LockThis.ql -------------------------------------------------------------------------------- /csharp/ql/test/query-tests/Concurrency/LockedWait/LockedWait.qlref: -------------------------------------------------------------------------------- 1 | Concurrency/LockedWait.ql -------------------------------------------------------------------------------- /csharp/ql/test/query-tests/Dead Code/Tests/DeadRefTypes.qlref: -------------------------------------------------------------------------------- 1 | Dead Code/DeadRefTypes.ql -------------------------------------------------------------------------------- /csharp/ql/test/query-tests/Dead Code/Tests/UnusedField.qlref: -------------------------------------------------------------------------------- 1 | Dead Code/UnusedField.ql 2 | -------------------------------------------------------------------------------- /csharp/ql/test/query-tests/Dead Code/Tests/UnusedMethod.qlref: -------------------------------------------------------------------------------- 1 | Dead Code/UnusedMethod.ql 2 | -------------------------------------------------------------------------------- /csharp/ql/test/query-tests/Documentation/XmldocMissing.qlref: -------------------------------------------------------------------------------- 1 | Documentation/XmldocMissing.ql -------------------------------------------------------------------------------- /csharp/ql/test/query-tests/Language Abuse/NestedIf/NestedIf.qlref: -------------------------------------------------------------------------------- 1 | Language Abuse/NestedIf.ql -------------------------------------------------------------------------------- /csharp/ql/test/query-tests/Nullness/NullAlways.qlref: -------------------------------------------------------------------------------- 1 | CSI/NullAlways.ql 2 | -------------------------------------------------------------------------------- /csharp/ql/test/query-tests/Nullness/NullMaybe.qlref: -------------------------------------------------------------------------------- 1 | CSI/NullMaybe.ql 2 | -------------------------------------------------------------------------------- /csharp/ql/test/query-tests/Security Features/CWE-016/ASPNetPagesValidateRequest/Program.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /csharp/ql/test/query-tests/Security Features/CWE-016/ASPNetRequestValidationMode/Program.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /csharp/ql/test/query-tests/UseBraces/UseBraces.qlref: -------------------------------------------------------------------------------- 1 | Likely Bugs/Statements/UseBraces.ql 2 | -------------------------------------------------------------------------------- /docs/codeql/conf.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/docs/codeql/conf.py -------------------------------------------------------------------------------- /docs/codeql/ql-language-reference/.gitignore: -------------------------------------------------------------------------------- 1 | _build 2 | 3 | -------------------------------------------------------------------------------- /docs/codeql/ql-training/_static-training/slides-semmle-2/title_slide.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/codeql/vale-styles/Microsoft/vocab.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/experimental.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/docs/experimental.md -------------------------------------------------------------------------------- /java/ql/examples/queries.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /java/ql/src/.project: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/java/ql/src/.project -------------------------------------------------------------------------------- /java/ql/src/.qlpath: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/java/ql/src/.qlpath -------------------------------------------------------------------------------- /java/ql/src/Likely Bugs/Arithmetic/OctalLiteral.java: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /java/ql/src/default.qll: -------------------------------------------------------------------------------- 1 | /** DEPRECATED: use `java.qll` instead. */ 2 | 3 | import java 4 | -------------------------------------------------------------------------------- /java/ql/src/java.qll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/java/ql/src/java.qll -------------------------------------------------------------------------------- /java/ql/src/queries.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /java/ql/src/semmle/code/java/deadcode/DeadCodeCustomizations.qll: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /java/ql/test/.qlpath: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/java/ql/test/.qlpath -------------------------------------------------------------------------------- /java/ql/test/experimental/query-tests/security/CWE-548/A.java: -------------------------------------------------------------------------------- 1 | public class A { 2 | } 3 | -------------------------------------------------------------------------------- /java/ql/test/experimental/query-tests/security/CWE-555/A.java: -------------------------------------------------------------------------------- 1 | public class A { 2 | } 3 | -------------------------------------------------------------------------------- /java/ql/test/library-tests/JDK/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/java/PrintAst.ql -------------------------------------------------------------------------------- /java/ql/test/library-tests/arrays/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/java/PrintAst.ql -------------------------------------------------------------------------------- /java/ql/test/library-tests/collections/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/java/PrintAst.ql -------------------------------------------------------------------------------- /java/ql/test/library-tests/comments/.gitattributes: -------------------------------------------------------------------------------- 1 | TestWindows.java eol=crlf 2 | -------------------------------------------------------------------------------- /java/ql/test/library-tests/comments/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/java/PrintAst.ql -------------------------------------------------------------------------------- /java/ql/test/library-tests/constants/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/java/PrintAst.ql -------------------------------------------------------------------------------- /java/ql/test/library-tests/constructors/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/java/PrintAst.ql -------------------------------------------------------------------------------- /java/ql/test/library-tests/controlflow/dominance/dominanceBad.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /java/ql/test/library-tests/controlflow/dominance/dominanceWrong.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /java/ql/test/library-tests/controlflow/dominance/dominatedByStart.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /java/ql/test/library-tests/controlflow/dominance/dominatorExists.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /java/ql/test/library-tests/controlflow/dominance/dominatorUnique.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /java/ql/test/library-tests/dataflow/fluent-methods/flow.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /java/ql/test/library-tests/dependency-counts/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/java/PrintAst.ql -------------------------------------------------------------------------------- /java/ql/test/library-tests/dependency/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/java/PrintAst.ql -------------------------------------------------------------------------------- /java/ql/test/library-tests/fields/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/java/PrintAst.ql -------------------------------------------------------------------------------- /java/ql/test/library-tests/frameworks/android/manifest/Test.java: -------------------------------------------------------------------------------- 1 | class Test {} 2 | -------------------------------------------------------------------------------- /java/ql/test/library-tests/frameworks/apache-commons-lang3/flow.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /java/ql/test/library-tests/frameworks/apache-http/flow.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /java/ql/test/library-tests/frameworks/guava/flow.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /java/ql/test/library-tests/generics/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/java/PrintAst.ql -------------------------------------------------------------------------------- /java/ql/test/library-tests/guards12/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/java/PrintAst.ql -------------------------------------------------------------------------------- /java/ql/test/library-tests/java7/Diamond/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/java/PrintAst.ql -------------------------------------------------------------------------------- /java/ql/test/library-tests/java7/MultiCatch/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/java/PrintAst.ql -------------------------------------------------------------------------------- /java/ql/test/library-tests/javadoc/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/java/PrintAst.ql -------------------------------------------------------------------------------- /java/ql/test/library-tests/modifiers/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/java/PrintAst.ql -------------------------------------------------------------------------------- /java/ql/test/library-tests/printAst/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/java/PrintAst.ql -------------------------------------------------------------------------------- /java/ql/test/library-tests/properties/Test.java: -------------------------------------------------------------------------------- 1 | public class Test { } 2 | -------------------------------------------------------------------------------- /java/ql/test/library-tests/qlengine/castAtType.expected: -------------------------------------------------------------------------------- 1 | | Tst.java:2:8:2:12 | field | 2 | -------------------------------------------------------------------------------- /java/ql/test/library-tests/reflection/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/java/PrintAst.ql -------------------------------------------------------------------------------- /java/ql/test/library-tests/ssa-large/countssa.expected: -------------------------------------------------------------------------------- 1 | | 5002 | 2500 | 2 | -------------------------------------------------------------------------------- /java/ql/test/library-tests/successors/CloseReaderTest/FalseSuccessors.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /java/ql/test/library-tests/successors/TestThrow2/FalseSuccessors.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /java/ql/test/library-tests/successors/TestTryWithResources/FalseSuccessors.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /java/ql/test/library-tests/typeaccesses/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/java/PrintAst.ql -------------------------------------------------------------------------------- /java/ql/test/library-tests/varargs/PrintAst.qlref: -------------------------------------------------------------------------------- 1 | semmle/code/java/PrintAst.ql -------------------------------------------------------------------------------- /java/ql/test/queries.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /java/ql/test/query-tests/AlertSuppression/.gitattributes: -------------------------------------------------------------------------------- 1 | TestWindows.java eol=crlf 2 | -------------------------------------------------------------------------------- /java/ql/test/query-tests/AlertSuppression/AlertSuppression.qlref: -------------------------------------------------------------------------------- 1 | AlertSuppression.ql 2 | -------------------------------------------------------------------------------- /java/ql/test/query-tests/BadCheckOdd/BadCheckOdd.qlref: -------------------------------------------------------------------------------- 1 | Likely Bugs/Arithmetic/BadCheckOdd.ql -------------------------------------------------------------------------------- /java/ql/test/query-tests/BusyWait/BusyWait.qlref: -------------------------------------------------------------------------------- 1 | Likely Bugs/Concurrency/BusyWait.ql -------------------------------------------------------------------------------- /java/ql/test/query-tests/DeadCode/NonAssignedFields/NonAssignedFields.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /java/ql/test/query-tests/DefineEqualsWhenAddingFields/DefineEqualsWhenAddingFields.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /java/ql/test/query-tests/EqualsArray/EqualsArray.qlref: -------------------------------------------------------------------------------- 1 | Likely Bugs/Comparison/EqualsArray.ql -------------------------------------------------------------------------------- /java/ql/test/query-tests/EqualsUsesInstanceOf/EqualsUsesInstanceOf.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /java/ql/test/query-tests/Iterable/WrappedIterator.qlref: -------------------------------------------------------------------------------- 1 | Language Abuse/WrappedIterator.ql 2 | -------------------------------------------------------------------------------- /java/ql/test/query-tests/UseBraces/UseBraces.qlref: -------------------------------------------------------------------------------- 1 | Likely Bugs/Statements/UseBraces.ql 2 | -------------------------------------------------------------------------------- /java/ql/test/query-tests/UselessUpcast/UselessUpcast.qlref: -------------------------------------------------------------------------------- 1 | Language Abuse/UselessUpcast.ql -------------------------------------------------------------------------------- /java/ql/test/query-tests/dead-code/DeadCallable/DeadCallable.qlref: -------------------------------------------------------------------------------- 1 | DeadCode/DeadMethod.ql 2 | -------------------------------------------------------------------------------- /java/ql/test/query-tests/dead-code/DeadField/DeadField.qlref: -------------------------------------------------------------------------------- 1 | DeadCode/DeadField.ql 2 | -------------------------------------------------------------------------------- /java/ql/test/query-tests/dead-code/DeadMethod/DeadMethod.qlref: -------------------------------------------------------------------------------- 1 | DeadCode/DeadMethod.ql 2 | -------------------------------------------------------------------------------- /java/ql/test/query-tests/definitions/definitions.qlref: -------------------------------------------------------------------------------- 1 | definitions.ql 2 | -------------------------------------------------------------------------------- /java/ql/test/query-tests/security/CWE-1104/semmle/tests/A.java: -------------------------------------------------------------------------------- 1 | public class A { 2 | } 3 | -------------------------------------------------------------------------------- /java/ql/test/query-tests/security/CWE-829/semmle/tests/A.java: -------------------------------------------------------------------------------- 1 | public class A { 2 | } 3 | -------------------------------------------------------------------------------- /java/ql/test/stubs/apache-http-4.4.13/org/apache/http/util/ByteBuffer.java: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/config/suites/javascript/compatibility: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/config/suites/javascript/frameworks-core: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/extractor/lib/typescript/.gitignore: -------------------------------------------------------------------------------- 1 | build 2 | dist 3 | -------------------------------------------------------------------------------- /javascript/extractor/parser-tests/jcorn-jsx/test1.fail: -------------------------------------------------------------------------------- 1 | Unexpected token (1:4) -------------------------------------------------------------------------------- /javascript/extractor/parser-tests/jcorn-jsx/test1.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/extractor/parser-tests/jcorn-jsx/test10.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/extractor/parser-tests/jcorn-jsx/test14.js: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /javascript/extractor/parser-tests/jcorn-jsx/test15.js: -------------------------------------------------------------------------------- 1 | {/* this is a comment */} -------------------------------------------------------------------------------- /javascript/extractor/parser-tests/jcorn-jsx/test16.js: -------------------------------------------------------------------------------- 1 |
@test content
-------------------------------------------------------------------------------- /javascript/extractor/parser-tests/jcorn-jsx/test2.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/extractor/parser-tests/jcorn-jsx/test21.js: -------------------------------------------------------------------------------- 1 | (
) < x; -------------------------------------------------------------------------------- /javascript/extractor/parser-tests/jcorn-jsx/test22.js: -------------------------------------------------------------------------------- 1 |
-------------------------------------------------------------------------------- /javascript/extractor/parser-tests/jcorn-jsx/test23.js: -------------------------------------------------------------------------------- 1 |
-------------------------------------------------------------------------------- /javascript/extractor/parser-tests/jcorn-jsx/test3.fail: -------------------------------------------------------------------------------- 1 | Unexpected token (1:3) -------------------------------------------------------------------------------- /javascript/extractor/parser-tests/jcorn-jsx/test3.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/extractor/parser-tests/jcorn-jsx/test31.js: -------------------------------------------------------------------------------- 1 |
-------------------------------------------------------------------------------- /javascript/extractor/parser-tests/jcorn-jsx/test4.fail: -------------------------------------------------------------------------------- 1 | Unexpected token (1:7) -------------------------------------------------------------------------------- /javascript/extractor/parser-tests/jcorn-jsx/test4.js: -------------------------------------------------------------------------------- 1 |
-------------------------------------------------------------------------------- /javascript/extractor/parser-tests/jcorn-jsx/test5.ast: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /javascript/extractor/parser-tests/jcorn-jsx/test5.js: -------------------------------------------------------------------------------- 1 | {/* foo */} -------------------------------------------------------------------------------- /javascript/extractor/parser-tests/jcorn-jsx/test6.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/extractor/parser-tests/jcorn-jsx/test7.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/extractor/parser-tests/jcorn-jsx/test8.js: -------------------------------------------------------------------------------- 1 | {value} -------------------------------------------------------------------------------- /javascript/extractor/tests/cfg/input/classexpr1.js: -------------------------------------------------------------------------------- 1 | !class {}; -------------------------------------------------------------------------------- /javascript/extractor/tests/cfg/input/classexpr2.js: -------------------------------------------------------------------------------- 1 | !class A {}; -------------------------------------------------------------------------------- /javascript/extractor/tests/cfg/input/classexpr3.js: -------------------------------------------------------------------------------- 1 | !class extends B {}; -------------------------------------------------------------------------------- /javascript/extractor/tests/cfg/input/classexpr4.js: -------------------------------------------------------------------------------- 1 | !class A extends B {}; -------------------------------------------------------------------------------- /javascript/extractor/tests/cfg/input/seq.js: -------------------------------------------------------------------------------- 1 | if(x,1+2,y||z); -------------------------------------------------------------------------------- /javascript/extractor/tests/cfg/options.json: -------------------------------------------------------------------------------- 1 | { 2 | "experimental": true 3 | } 4 | -------------------------------------------------------------------------------- /javascript/extractor/tests/comments/input/empty_comment.js: -------------------------------------------------------------------------------- 1 | /**/ 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/e4x/input/regress.js: -------------------------------------------------------------------------------- 1 | [ x in y ] 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/e4x/options.json: -------------------------------------------------------------------------------- 1 | { 2 | "experimental": true 3 | } 4 | -------------------------------------------------------------------------------- /javascript/extractor/tests/encoding/input/unicode.js: -------------------------------------------------------------------------------- 1 | "Semmlé" -------------------------------------------------------------------------------- /javascript/extractor/tests/encoding/input/zwsp.js: -------------------------------------------------------------------------------- 1 | ​ 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/errors/input/empty.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/extractor/tests/errors/input/errors.js: -------------------------------------------------------------------------------- 1 | hi~~ -------------------------------------------------------------------------------- /javascript/extractor/tests/errors/input/incomplete.js: -------------------------------------------------------------------------------- 1 | if (b) { 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/errors/input/invalid-assignment-pattern.js: -------------------------------------------------------------------------------- 1 | (x = 0) = y 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/errors/input/json.js: -------------------------------------------------------------------------------- 1 | { 2 | "a": 42 3 | } -------------------------------------------------------------------------------- /javascript/extractor/tests/errors/input/kwident.js: -------------------------------------------------------------------------------- 1 | var class = 23; 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/errors/input/weirdassign.js: -------------------------------------------------------------------------------- 1 | a %*= 1 -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/array_pattern_with_default.js: -------------------------------------------------------------------------------- 1 | [x=42] = []; -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/class_extends.js: -------------------------------------------------------------------------------- 1 | class Point extends Object {} -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/classdecl.js: -------------------------------------------------------------------------------- 1 | class Point {} -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/classexpr.js: -------------------------------------------------------------------------------- 1 | (class Point {}) -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/complex_array_pattern.js: -------------------------------------------------------------------------------- 1 | [o.x] = [42]; -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/complex_object_pattern.js: -------------------------------------------------------------------------------- 1 | ({ x: o.x } = q); -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/const.js: -------------------------------------------------------------------------------- 1 | const x = 23; 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/defaultargs.js: -------------------------------------------------------------------------------- 1 | function f(x, y=x+19) {} -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/export1.js: -------------------------------------------------------------------------------- 1 | export var x = 23; -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/export10.js: -------------------------------------------------------------------------------- 1 | export default function f () {} [,] 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/export11.js: -------------------------------------------------------------------------------- 1 | export default class {} 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/export2.js: -------------------------------------------------------------------------------- 1 | export function f() {}; -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/export3.js: -------------------------------------------------------------------------------- 1 | export default function f() {}; -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/export4.js: -------------------------------------------------------------------------------- 1 | export default function () {}; -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/export6.js: -------------------------------------------------------------------------------- 1 | export * from 'foo'; -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/export7.js: -------------------------------------------------------------------------------- 1 | export { x, y as z } from 'foo'; -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/export8.js: -------------------------------------------------------------------------------- 1 | foo = 42; 2 | export default foo; -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/export9.js: -------------------------------------------------------------------------------- 1 | export default class C {} [,] 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/import1.js: -------------------------------------------------------------------------------- 1 | import x from 'foo'; -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/import2.js: -------------------------------------------------------------------------------- 1 | import { y } from 'foo'; -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/import3.js: -------------------------------------------------------------------------------- 1 | import { y as z } from 'foo'; -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/import4.js: -------------------------------------------------------------------------------- 1 | import x, { y as z } from 'foo'; -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/import5.js: -------------------------------------------------------------------------------- 1 | import * as foo from 'foo'; -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/import6.js: -------------------------------------------------------------------------------- 1 | import 'foo'; -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/let2.js: -------------------------------------------------------------------------------- 1 | let /* **/ x = 42; 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/no-substitution.js: -------------------------------------------------------------------------------- 1 | `` 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/property_pattern_with_default.js: -------------------------------------------------------------------------------- 1 | ({x = 1}) => x; -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/restparms.js: -------------------------------------------------------------------------------- 1 | function f(x, ...ys) { 2 | } -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/restparms2.js: -------------------------------------------------------------------------------- 1 | function f(x, ...[y, z]) { 2 | } -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/spreadelement.js: -------------------------------------------------------------------------------- 1 | [a, ...as]; 2 | new Array(...elts); -------------------------------------------------------------------------------- /javascript/extractor/tests/es2015/input/yield2.js: -------------------------------------------------------------------------------- 1 | function* f() { 2 | yield; 3 | } 4 | -------------------------------------------------------------------------------- /javascript/extractor/tests/es2016/input/exp.js: -------------------------------------------------------------------------------- 1 | 1**0 2 | x**=2 -------------------------------------------------------------------------------- /javascript/extractor/tests/es2016/input/usestrict.js: -------------------------------------------------------------------------------- 1 | function f(a=2) { 'use strict'; } -------------------------------------------------------------------------------- /javascript/extractor/tests/es2017/input/invalid-async-fn.js: -------------------------------------------------------------------------------- 1 | f = async ((x)) => x -------------------------------------------------------------------------------- /javascript/extractor/tests/es2017/input/shorthand-prop-async.js: -------------------------------------------------------------------------------- 1 | ({ async }); 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/es2017/options.json: -------------------------------------------------------------------------------- 1 | { 2 | "experimental": true 3 | } 4 | -------------------------------------------------------------------------------- /javascript/extractor/tests/es2018/options.json: -------------------------------------------------------------------------------- 1 | { 2 | "experimental": true 3 | } 4 | -------------------------------------------------------------------------------- /javascript/extractor/tests/es2021/options.json: -------------------------------------------------------------------------------- 1 | { 2 | "experimental": true 3 | } 4 | -------------------------------------------------------------------------------- /javascript/extractor/tests/esnext/input/optional-chaining_bad1.js: -------------------------------------------------------------------------------- 1 | new a?.(); -------------------------------------------------------------------------------- /javascript/extractor/tests/esnext/input/optional-chaining_bad2.js: -------------------------------------------------------------------------------- 1 | a?.`{b}`; -------------------------------------------------------------------------------- /javascript/extractor/tests/esnext/input/optional-chaining_bad3.js: -------------------------------------------------------------------------------- 1 | new a?.b(); -------------------------------------------------------------------------------- /javascript/extractor/tests/esnext/input/optional-chaining_bad4.js: -------------------------------------------------------------------------------- 1 | a?.b`{c}`; -------------------------------------------------------------------------------- /javascript/extractor/tests/esnext/input/optional-chaining_bad5.js: -------------------------------------------------------------------------------- 1 | a?.b = c; -------------------------------------------------------------------------------- /javascript/extractor/tests/esnext/input/optional-chaining_bad6.js: -------------------------------------------------------------------------------- 1 | new a.b?.c(); 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/esnext/options.json: -------------------------------------------------------------------------------- 1 | { 2 | "experimental": true 3 | } 4 | -------------------------------------------------------------------------------- /javascript/extractor/tests/excludes/input/.jshintignore: -------------------------------------------------------------------------------- 1 | f/bar*.js 2 | baz/ 3 | -------------------------------------------------------------------------------- /javascript/extractor/tests/excludes/input/a.js: -------------------------------------------------------------------------------- 1 | 42 -------------------------------------------------------------------------------- /javascript/extractor/tests/excludes/input/baz/a.js: -------------------------------------------------------------------------------- 1 | console.log("Nor this."); -------------------------------------------------------------------------------- /javascript/extractor/tests/excludes/input/f/bar.js: -------------------------------------------------------------------------------- 1 | console.log("And neither will this."); -------------------------------------------------------------------------------- /javascript/extractor/tests/excludes/input/f/empty.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /javascript/extractor/tests/exprs/input/fnnesting.js: -------------------------------------------------------------------------------- 1 | f(function(){}, 23); -------------------------------------------------------------------------------- /javascript/extractor/tests/exprs/input/parens.js: -------------------------------------------------------------------------------- 1 | --(NaN); -------------------------------------------------------------------------------- /javascript/extractor/tests/exprs/input/update.js: -------------------------------------------------------------------------------- 1 | ++a; 2 | a++; 3 | --b; 4 | b--; 5 | -------------------------------------------------------------------------------- /javascript/extractor/tests/extensions/input/tst.es6: -------------------------------------------------------------------------------- 1 | console.log("Hello ES6"); 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/extensions/input/tst2.es: -------------------------------------------------------------------------------- 1 | console.log("Hello ES"); 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/extensions/input/tst4.cjs: -------------------------------------------------------------------------------- 1 | console.log("Hello CommonJS"); 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/externs/options.json: -------------------------------------------------------------------------------- 1 | { 2 | "externs": true 3 | } -------------------------------------------------------------------------------- /javascript/extractor/tests/flow/input/anonFunctionOptionalParm.js: -------------------------------------------------------------------------------- 1 | var f = (x?:int) => {}; 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/flow/input/boundExplicitTypeParameters.js: -------------------------------------------------------------------------------- 1 | var b = ::o.m; -------------------------------------------------------------------------------- /javascript/extractor/tests/flow/input/notExplicitTypeParameters1.js: -------------------------------------------------------------------------------- 1 | 1<2>(3); -------------------------------------------------------------------------------- /javascript/extractor/tests/flow/input/notExplicitTypeParameters2.js: -------------------------------------------------------------------------------- 1 | f(h()); -------------------------------------------------------------------------------- /javascript/extractor/tests/flow/input/notExplicitTypeParameters3.js: -------------------------------------------------------------------------------- 1 | /x/<2>(3); -------------------------------------------------------------------------------- /javascript/extractor/tests/flow/input/qualifiedInterface.js: -------------------------------------------------------------------------------- 1 | interface I extends J.K {} 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/flow/options.json: -------------------------------------------------------------------------------- 1 | { 2 | "experimental": true 3 | } 4 | -------------------------------------------------------------------------------- /javascript/extractor/tests/functionbind/options.json: -------------------------------------------------------------------------------- 1 | { 2 | "experimental": true 3 | } 4 | -------------------------------------------------------------------------------- /javascript/extractor/tests/helloworld/input/hello.js: -------------------------------------------------------------------------------- 1 | alert("Hello, world!"); -------------------------------------------------------------------------------- /javascript/extractor/tests/html/input/doctype.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/jscript/options.json: -------------------------------------------------------------------------------- 1 | { 2 | "experimental": true 3 | } 4 | -------------------------------------------------------------------------------- /javascript/extractor/tests/json/input/array.json: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/json/input/empty.json: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/extractor/tests/json/input/error.json: -------------------------------------------------------------------------------- 1 | { -------------------------------------------------------------------------------- /javascript/extractor/tests/json/input/f/ignored.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /javascript/extractor/tests/json/input/invalid.json: -------------------------------------------------------------------------------- 1 | { 2 | x: 23 3 | } -------------------------------------------------------------------------------- /javascript/extractor/tests/json/input/neg.json: -------------------------------------------------------------------------------- 1 | -1 -------------------------------------------------------------------------------- /javascript/extractor/tests/json/input/neg2.json: -------------------------------------------------------------------------------- 1 | [1, -2] -------------------------------------------------------------------------------- /javascript/extractor/tests/json/input/null.json: -------------------------------------------------------------------------------- 1 | null -------------------------------------------------------------------------------- /javascript/extractor/tests/json/input/omitted.json: -------------------------------------------------------------------------------- 1 | { 2 | "x": [ , 23 ] 3 | } -------------------------------------------------------------------------------- /javascript/extractor/tests/jsx/input/err1.jsx: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/jsx/input/err2.jsx: -------------------------------------------------------------------------------- 1 | <> 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/jsx/input/err3.jsx: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/jsx/input/err4.jsx: -------------------------------------------------------------------------------- 1 | <> 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/jsx/input/tst.jsx: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/extractor/tests/jsx/input/tst2.js: -------------------------------------------------------------------------------- 1 | /b> -------------------------------------------------------------------------------- /javascript/extractor/tests/keywords/options.json: -------------------------------------------------------------------------------- 1 | { 2 | "experimental": true 3 | } 4 | -------------------------------------------------------------------------------- /javascript/extractor/tests/moduleTypes1/input/tst.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/extractor/tests/moduleTypes2/input/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": 123 3 | } -------------------------------------------------------------------------------- /javascript/extractor/tests/moduleTypes2/input/tst2.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/extractor/tests/moduleTypes3/input/package.json: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/extractor/tests/moduleTypes3/input/tst.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/extractor/tests/mozilla/input/letStmt2.js: -------------------------------------------------------------------------------- 1 | let (x = 0) 1 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/mozilla/options.json: -------------------------------------------------------------------------------- 1 | { 2 | "experimental": true 3 | } 4 | -------------------------------------------------------------------------------- /javascript/extractor/tests/ng-templates/options.json: -------------------------------------------------------------------------------- 1 | { 2 | "experimental": true 3 | } 4 | -------------------------------------------------------------------------------- /javascript/extractor/tests/node/input/constlet.js: -------------------------------------------------------------------------------- 1 | const x = 23; 2 | let y = 42; -------------------------------------------------------------------------------- /javascript/extractor/tests/node/input/empty: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/extractor/tests/node/input/f/ignored.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /javascript/extractor/tests/node/input/f/package.json: -------------------------------------------------------------------------------- 1 | "i get extracted" -------------------------------------------------------------------------------- /javascript/extractor/tests/node/input/tst.mjs: -------------------------------------------------------------------------------- 1 | var x; -------------------------------------------------------------------------------- /javascript/extractor/tests/node/options.json: -------------------------------------------------------------------------------- 1 | { 2 | "nodejs": true 3 | } -------------------------------------------------------------------------------- /javascript/extractor/tests/project-layout: -------------------------------------------------------------------------------- 1 | **/ql/javascript/extractor/tests/*/input// 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/rcfiles/input/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "sourceType": "module" 3 | } 4 | -------------------------------------------------------------------------------- /javascript/extractor/tests/rcfiles/input/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "parser": "babel-eslint" 3 | } 4 | -------------------------------------------------------------------------------- /javascript/extractor/tests/rcfiles/input/.npmrc: -------------------------------------------------------------------------------- 1 | page-lock=false 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/regexp/input/nonstandard.js: -------------------------------------------------------------------------------- 1 | /dice/y; -------------------------------------------------------------------------------- /javascript/extractor/tests/regexp/input/tst.js: -------------------------------------------------------------------------------- 1 | /\u{10400}/; 2 | /\c/; 3 | -------------------------------------------------------------------------------- /javascript/extractor/tests/restprops/input/tst.js: -------------------------------------------------------------------------------- 1 | var f = ({...p}) => {}; 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/restprops/options.json: -------------------------------------------------------------------------------- 1 | { 2 | "experimental": true 3 | } 4 | -------------------------------------------------------------------------------- /javascript/extractor/tests/shebang/input/tst.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/node 2 | alert("Hi!"); -------------------------------------------------------------------------------- /javascript/extractor/tests/shebang/options.json: -------------------------------------------------------------------------------- 1 | { 2 | "typescript": true 3 | } 4 | -------------------------------------------------------------------------------- /javascript/extractor/tests/stmts/input/trivial-switch.js: -------------------------------------------------------------------------------- 1 | switch(x){} 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/strictmode/input/tst.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | ; -------------------------------------------------------------------------------- /javascript/extractor/tests/ts/input/arrayBindingPattern.ts: -------------------------------------------------------------------------------- 1 | let [x,y] = [1,2] 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/ts/input/badimport.ts: -------------------------------------------------------------------------------- 1 | import n = 5; 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/ts/input/bindingpattern.ts: -------------------------------------------------------------------------------- 1 | function foo({x, y}) {} 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/ts/input/bom.ts: -------------------------------------------------------------------------------- 1 | 42 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/ts/input/declareClass.ts: -------------------------------------------------------------------------------- 1 | declare class C {} 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/ts/input/emptydecls.ts: -------------------------------------------------------------------------------- 1 | var; 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/ts/input/export2.ts: -------------------------------------------------------------------------------- 1 | export default 42; 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/ts/input/exportassign.ts: -------------------------------------------------------------------------------- 1 | export = 42; 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/ts/input/exportclass.ts: -------------------------------------------------------------------------------- 1 | export class {} 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/ts/input/importassign.ts: -------------------------------------------------------------------------------- 1 | import x = require("./exportassign"); 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/ts/input/invalidModuleSpecifier.ts: -------------------------------------------------------------------------------- 1 | import * as x from `x`; 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/ts/input/omitted.ts: -------------------------------------------------------------------------------- 1 | [, ,1]; -------------------------------------------------------------------------------- /javascript/extractor/tests/ts/input/regexp.ts: -------------------------------------------------------------------------------- 1 | /a/ -------------------------------------------------------------------------------- /javascript/extractor/tests/ts/input/templates.ts: -------------------------------------------------------------------------------- 1 | `url("${ctx.expected.image}")` 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/ts/input/touchstone-file2.ts: -------------------------------------------------------------------------------- 1 | [Version] 2.0 2 | -------------------------------------------------------------------------------- /javascript/extractor/tests/ts/input/unicode.ts: -------------------------------------------------------------------------------- 1 | // Ø α 2 | // ࢢ 3 | // 𝄞 4 | -------------------------------------------------------------------------------- /javascript/extractor/tests/ts/input/xmlfile.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /javascript/extractor/tests/ts/options.json: -------------------------------------------------------------------------------- 1 | { 2 | "experimental": true 3 | } 4 | -------------------------------------------------------------------------------- /javascript/extractor/tests/v8/input/tst.js: -------------------------------------------------------------------------------- 1 | %CheckIsBootstrapping(); 2 | a%%NumberAdd(1, 2); -------------------------------------------------------------------------------- /javascript/extractor/tests/v8/options.json: -------------------------------------------------------------------------------- 1 | { 2 | "experimental": true 3 | } 4 | -------------------------------------------------------------------------------- /javascript/extractor/tests/variables/input/const.js: -------------------------------------------------------------------------------- 1 | const answer = 42; -------------------------------------------------------------------------------- /javascript/ql/examples/queries.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /javascript/ql/src/DOM/examples/PseudoEval.js: -------------------------------------------------------------------------------- 1 | setTimeout("notifyUser();", 1000); -------------------------------------------------------------------------------- /javascript/ql/src/DOM/examples/PseudoEvalGood.js: -------------------------------------------------------------------------------- 1 | setTimeout(notifyUser, 1000); -------------------------------------------------------------------------------- /javascript/ql/src/Expressions/examples/ExprHasNoEffect.js: -------------------------------------------------------------------------------- 1 | elem.parentNode.selectedIndex; 2 | -------------------------------------------------------------------------------- /javascript/ql/src/Expressions/examples/RedundantExpressionGood2.js: -------------------------------------------------------------------------------- 1 | if (f()) 2 | f(); -------------------------------------------------------------------------------- /javascript/ql/src/Expressions/examples/ShiftOutOfRange.js: -------------------------------------------------------------------------------- 1 | var x = 1<<40; -------------------------------------------------------------------------------- /javascript/ql/src/Expressions/examples/ShiftOutOfRangeGood.js: -------------------------------------------------------------------------------- 1 | var x = Math.pow(2, 40); -------------------------------------------------------------------------------- /javascript/ql/src/LanguageFeatures/examples/EmptyArrayInitGood.js: -------------------------------------------------------------------------------- 1 | var a = new Array(10); -------------------------------------------------------------------------------- /javascript/ql/src/LanguageFeatures/examples/OctalLiteral.js: -------------------------------------------------------------------------------- 1 | var code = 012; -------------------------------------------------------------------------------- /javascript/ql/src/RegExp/examples/UnboundBackref.js: -------------------------------------------------------------------------------- 1 | /^(?:\s+)\w+\1$/; 2 | -------------------------------------------------------------------------------- /javascript/ql/src/queries.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /javascript/ql/src/semmle/javascript/dependencies/DependencyCustomizations.qll: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /javascript/ql/src/semmle/javascript/frameworks/TestingCustomizations.qll: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/argprops/VerifyAssertions.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/argprops/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "argprops" 3 | } 4 | -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/async-await/VerifyAssertions.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/bound-args/VerifyAssertions.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/branching-flow/VerifyAssertions.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/classes/VerifyAssertions.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/ctor-arg/VerifyAssertions.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/ctor-arg/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ctor-arg" 3 | } -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/custom-entry-point/VerifyAssertions.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/cyclic/VerifyAssertions.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/cyclic/VerifyAssertions.ql: -------------------------------------------------------------------------------- 1 | import ApiGraphs.VerifyAssertions 2 | -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/dynamic-prop-read/VerifyAssertions.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/imprecise-export/VerifyAssertions.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/imprecision/VerifyAssertions.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/imprecision/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "imprecision" 3 | } -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/namespaced-package/VerifyAssertions.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/nested-property-export/VerifyAssertions.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/nonlocal/VerifyAssertions.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/partial-invoke/VerifyAssertions.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/promises/VerifyAssertions.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/promisify/VerifyAssertions.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/property-read-from-argument/VerifyAssertions.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/reexport/VerifyAssertions.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/reexport/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "reexport" 3 | } 4 | -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/return-self/VerifyAssertions.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/return-self/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "return-self" 3 | } -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/typed/VerifyAssertions.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/ApiGraphs/typed/VerifyAssertions.ql: -------------------------------------------------------------------------------- 1 | import ApiGraphs.VerifyAssertions 2 | -------------------------------------------------------------------------------- /javascript/ql/test/experimental/Security/CWE-094/empty.js: -------------------------------------------------------------------------------- 1 | console.log('test') -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/AMD/dir/b.js: -------------------------------------------------------------------------------- 1 | define({ 2 | bar: 42 3 | }); -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/AMD/lib/foo.js: -------------------------------------------------------------------------------- 1 | define({ 2 | foo: 23 3 | }); 4 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Bundling/d.js: -------------------------------------------------------------------------------- 1 | // nothing -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/CFG/enum.ts: -------------------------------------------------------------------------------- 1 | enum E { a = 'value' } -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/CFG/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --experimental 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/CallGraphs/FullTest/tst2.js: -------------------------------------------------------------------------------- 1 | var globalfn = null; 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Classes/fields.js: -------------------------------------------------------------------------------- 1 | class C { 2 | x; 3 | y = 42 4 | } 5 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Classes/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --experimental 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Constants/tst2.ts: -------------------------------------------------------------------------------- 1 | let value = 1; 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/DOM/tst-without-html-root-element.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/DefUse/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --experimental 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/ES20xxFeatures/es2016.js: -------------------------------------------------------------------------------- 1 | x **= y ** z; -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/ESLint/sub/subsub/tst.js: -------------------------------------------------------------------------------- 1 | aWritableGlobal; 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/ESLint/sub/tst.js: -------------------------------------------------------------------------------- 1 | aWritableGlobal; 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/ESLint/tst.js: -------------------------------------------------------------------------------- 1 | aWritableGlobal; 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Errors/tst.js: -------------------------------------------------------------------------------- 1 | while 2 | } 3 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Expr/mozextensions.js: -------------------------------------------------------------------------------- 1 | array.map(function(x) x+1); 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Expr/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --experimental 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Expr/update.js: -------------------------------------------------------------------------------- 1 | ++a; 2 | a++; 3 | --b; 4 | b--; 5 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/FileTypes/jsTest.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/FileTypes/jsxTest.jsx: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/FileTypes/mjsTest.mjs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/FileTypes/test.htm: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/FileTypes/test.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/FileTypes/test.json: -------------------------------------------------------------------------------- 1 | 42 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/FileTypes/test.raml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/FileTypes/test.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/FileTypes/test.xhtm: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/FileTypes/test.xhtml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/FileTypes/test.yaml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/FileTypes/test.yml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/FileTypes/tsTest.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/FileTypes/tsxTest.tsx: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Files/a.js: -------------------------------------------------------------------------------- 1 | a -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Files/b/c.js: -------------------------------------------------------------------------------- 1 | c -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Flow/a2.js: -------------------------------------------------------------------------------- 1 | export * from './a'; 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Flow/d.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | foo: "bar" 3 | }; 4 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Flow/f.js: -------------------------------------------------------------------------------- 1 | exports.f = function() {}; 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Flow/mixins.js: -------------------------------------------------------------------------------- 1 | export default ParentClass => {}; 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Flow/namespace-reexport.js: -------------------------------------------------------------------------------- 1 | export * as h from './h'; 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Flow/o.js: -------------------------------------------------------------------------------- 1 | export default someStuff(); 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Flow/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --experimental 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Flow/reexport-d.js: -------------------------------------------------------------------------------- 1 | export * from './d'; 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Flow/reexport-mixins.js: -------------------------------------------------------------------------------- 1 | export default from './mixins'; 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Flow/ts.ts: -------------------------------------------------------------------------------- 1 | export default class A {} 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Functions/defaultargs.js: -------------------------------------------------------------------------------- 1 | function f(x, y=x+19) {} 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Functions/exprclosures.js: -------------------------------------------------------------------------------- 1 | a.map(function(x) x+1); 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Functions/restparms.js: -------------------------------------------------------------------------------- 1 | function r(x, ...ys) { 2 | } 3 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Generators/DataFlow.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/HTML/HtmlScript/tst.js: -------------------------------------------------------------------------------- 1 | not_inline 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/IIFE/es2015.js: -------------------------------------------------------------------------------- 1 | (function(...xs) { 2 | })(23); 3 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/InterProceduralFlow/fake-document.js: -------------------------------------------------------------------------------- 1 | document = {}; 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/InterProceduralFlow/global-forin2.js: -------------------------------------------------------------------------------- 1 | var sink3 = p; 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Lines/tst2.js: -------------------------------------------------------------------------------- 1 | first_line 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/MalformedPackageJson/nullContents/package.json: -------------------------------------------------------------------------------- 1 | null -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/ModuleTypes/mjs.mjs: -------------------------------------------------------------------------------- 1 | console.log("I'm a .mjs file!"); -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/ModuleTypes/modulePackage/subdir/subfile.js: -------------------------------------------------------------------------------- 1 | console.log(); -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/ModuleTypes/script.js: -------------------------------------------------------------------------------- 1 | console.log("I'm a plain script!"); -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Modules/g.ts: -------------------------------------------------------------------------------- 1 | import {foo} from './f' 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Modules/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --experimental 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Modules/reExportNamespace.js: -------------------------------------------------------------------------------- 1 | export * as ns from "./a"; 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/NPM/src/lib/tst2.js: -------------------------------------------------------------------------------- 1 | require(".."); -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/NPM/src/node_modules/a/index.js: -------------------------------------------------------------------------------- 1 | exports.name = "outer a"; -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/NPM/src/node_modules/b/lib/index.js: -------------------------------------------------------------------------------- 1 | export default 42; 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/NPM/src/node_modules/b/lib/util.ts: -------------------------------------------------------------------------------- 1 | export default 42; 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/NPM/src/node_modules/c/src/index.js: -------------------------------------------------------------------------------- 1 | export default "c"; 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/NPM/src/node_modules/d/main.js: -------------------------------------------------------------------------------- 1 | export default "d"; 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/NPM/src/tst2.js: -------------------------------------------------------------------------------- 1 | require("."); -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/NodeJS/f.js: -------------------------------------------------------------------------------- 1 | var r = require; 2 | r("fs"); -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Portals/src/m1/index.js: -------------------------------------------------------------------------------- 1 | module.exports = (x) => x; 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Portals/src/m1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "m1" 3 | } 4 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Portals/src/m3/tst.js: -------------------------------------------------------------------------------- 1 | require(".")(); 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Portals/src/m4/index.js: -------------------------------------------------------------------------------- 1 | exports.foo = function(x) {}; 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/Portals/src/m4/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "m4" 3 | } 4 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/RangeAnalysis/DeadBranch.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/TypeScript/ArrayTypes/tsconfig.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/TypeScript/BaseTypes/tsconfig.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/TypeScript/BigInts/tsconfig.json: -------------------------------------------------------------------------------- 1 | {"include": ["."]} 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/TypeScript/CallResolution/tsconfig.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/TypeScript/CallSignatureTypes/tsconfig.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/TypeScript/CompiledOutput/index.js: -------------------------------------------------------------------------------- 1 | export default 45; 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/TypeScript/DeclarationFiles/tsconfig.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/TypeScript/DynamicImport/DynamicImport.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/TypeScript/ExpansiveTypes/dummy.ts: -------------------------------------------------------------------------------- 1 | export let x = 1; -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/TypeScript/ExpansiveTypes/tsconfig.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/TypeScript/HeritageClauses/Unreachable.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/TypeScript/ImportMeta/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/TypeScript/LexicalTypes/dummy.ts: -------------------------------------------------------------------------------- 1 | export let x = 5; 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/TypeScript/LexicalTypes/tsconfig.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/TypeScript/Namespaces/CheckGlobals.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/TypeScript/QualifiedNameResolution/dummy.ts: -------------------------------------------------------------------------------- 1 | export var X = 5; -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/TypeScript/QualifiedNameResolution/tsconfig.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/TypeScript/RegressionTests/MissingTypeRoot/tst.ts: -------------------------------------------------------------------------------- 1 | let x = 5; -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/TypeScript/RegressionTests/RecursiveTypeAlias/Test.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/TypeScript/RegressionTests/TypeRootFile/tst.ts: -------------------------------------------------------------------------------- 1 | let x = 5; -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/TypeScript/RegressionTests/TypeRootFile/typeroot.d.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/TypeScript/TypeVariableTypes/tsconfig.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/TypeTracking/TypeTracking.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/XML/tst.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/YAML/err.yaml: -------------------------------------------------------------------------------- 1 | "unterminated string 2 | 3 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/YAML/external.yml: -------------------------------------------------------------------------------- 1 | 42 -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/frameworks/AngularJS/controllers/template1.html: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/frameworks/AngularJS/controllers/template3.html: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/frameworks/AngularJS/controllers/template4.html: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/frameworks/ClientRequests/tsconfig.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/frameworks/Emscripten/tts.js: -------------------------------------------------------------------------------- 1 | // EMSCRITPEN_START_ASM 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/frameworks/Express/RouteHandlerContainer.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/frameworks/jQuery/tsconfig.json: -------------------------------------------------------------------------------- 1 | {"include": ["."]} 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/meta/Extraction/tst.js: -------------------------------------------------------------------------------- 1 | console.log("extract me") 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/meta/Extraction/tst2.js: -------------------------------------------------------------------------------- 1 | console.log("extract me") 2 | -------------------------------------------------------------------------------- /javascript/ql/test/library-tests/meta/Extraction/tst3.ts: -------------------------------------------------------------------------------- 1 | console.log("extract me too"); 2 | -------------------------------------------------------------------------------- /javascript/ql/test/queries.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/AngularJS/UseNgSrc/UseNgSrc.qlref: -------------------------------------------------------------------------------- 1 | AngularJS/UseNgSrc.ql 2 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/DOM/Alert/Alert.qlref: -------------------------------------------------------------------------------- 1 | DOM/Alert.ql 2 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/DOM/HTML/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --html elements 2 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/DOM/PseudoEval/PseudoEval.qlref: -------------------------------------------------------------------------------- 1 | DOM/PseudoEval.ql -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/DOM/TargetBlank/TargetBlank.qlref: -------------------------------------------------------------------------------- 1 | DOM/TargetBlank.ql 2 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/Declarations/MissingVarDecl/test2.js: -------------------------------------------------------------------------------- 1 | var y; -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/Declarations/RedeclaredVariable/redeclaredVariable2.js: -------------------------------------------------------------------------------- 1 | var x; -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/Declarations/UnreachableOverloads/tsconfig.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/Expressions/ExprHasNoEffect/jsonlike.js: -------------------------------------------------------------------------------- 1 | ["foo", "bar", 123] -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/JSDoc/BadParamTag/BadParamTag.qlref: -------------------------------------------------------------------------------- 1 | JSDoc/BadParamTag.ql -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/LanguageFeatures/Eval/Eval.qlref: -------------------------------------------------------------------------------- 1 | LanguageFeatures/Eval.ql 2 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/LanguageFeatures/SyntaxError/arrows.js: -------------------------------------------------------------------------------- 1 | (a, a) => a + a; 2 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/Metrics/ExternalDependencies/src/sub/c.js: -------------------------------------------------------------------------------- 1 | require('lib1'); -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/Metrics/FLinesOfCode/FLinesOfCode.qlref: -------------------------------------------------------------------------------- 1 | Metrics/FLinesOfCode.ql -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/NodeJS/CyclicImport/CyclicImport.qlref: -------------------------------------------------------------------------------- 1 | NodeJS/CyclicImport.ql -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/NodeJS/CyclicImport/selfimport.js: -------------------------------------------------------------------------------- 1 | require('./selfimport'); -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/NodeJS/CyclicImport/test1/b.js: -------------------------------------------------------------------------------- 1 | require('../test2/inner/a'); -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/NodeJS/CyclicImport/test2/inner/a.js: -------------------------------------------------------------------------------- 1 | require('../../test1/a'); -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/NodeJS/DubiousImport/c.js: -------------------------------------------------------------------------------- 1 | exports.bar = 23; 2 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/NodeJS/DubiousImport/g.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./e'); 2 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/NodeJS/UnresolvableImport/src/m.js: -------------------------------------------------------------------------------- 1 | $.prototype.foo = 42; -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/Performance/ReDoS/ReDoS.qlref: -------------------------------------------------------------------------------- 1 | Performance/ReDoS.ql 2 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/Security/CWE-022/TaintedPath/Consistency.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/Security/CWE-078/Consistency.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/Security/CWE-079/DomBasedXss/ConsistencyDomBasedXss.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/Security/CWE-079/ExceptionXss/ConsistencyExceptionXss.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ConsistencyReflectedXss.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/Security/CWE-079/StoredXss/ConsistencyStoredXss.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/Security/CWE-089/untyped/Consistency.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/Security/CWE-200/subfolder/package.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/Security/CWE-313/tst.raml: -------------------------------------------------------------------------------- 1 | password: string 2 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/Security/CWE-601/ClientSideUrlRedirect/tsconfig.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/Security/CWE-611/Xxe.qlref: -------------------------------------------------------------------------------- 1 | Security/CWE-611/Xxe.ql 2 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/Security/CWE-776/XmlBomb.qlref: -------------------------------------------------------------------------------- 1 | Security/CWE-776/XmlBomb.ql 2 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/Statements/UseOfReturnlessFunction/tsconfig.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/WrongExtensionJSON/tst1.js: -------------------------------------------------------------------------------- 1 | { 2 | "x": 42 3 | } -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/WrongExtensionJSON/tst2.js: -------------------------------------------------------------------------------- 1 | ["x", 42] -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/WrongExtensionJSON/tst3.json: -------------------------------------------------------------------------------- 1 | { 2 | "x": 42 3 | } -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/definitions/c.js: -------------------------------------------------------------------------------- 1 | module.exports = 42; -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/definitions/definitions.qlref: -------------------------------------------------------------------------------- 1 | definitions.ql 2 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/definitions/m.js: -------------------------------------------------------------------------------- 1 | export class A {} 2 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/definitions/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "include": ["."] 3 | } 4 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/external/DuplicateFunction/DuplicateFunction.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/external/DuplicateToplevel/DuplicateToplevel.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/external/DuplicateToplevel/c.js: -------------------------------------------------------------------------------- 1 | console.log("Hello, world."); -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/external/DuplicateToplevel/d.js: -------------------------------------------------------------------------------- 1 | console.log("Hello, world."); -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/external/SimilarFunction/SimilarFunction.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/external/SimilarToplevel/SimilarToplevel.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/filters/ClassifyFiles/1.js: -------------------------------------------------------------------------------- 1 | var x = 42; 2 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/filters/ClassifyFiles/ai.1.2.3-build0123.js: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/filters/ClassifyFiles/bundle-directive.js: -------------------------------------------------------------------------------- 1 | "bundle"; 2 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/filters/ClassifyFiles/implementation.js: -------------------------------------------------------------------------------- 1 | var x = 42; 2 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/filters/ClassifyFiles/nonbmp.js: -------------------------------------------------------------------------------- 1 | 😼😼 2 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/filters/ClassifyFiles/not-unannotated-externs-1.js: -------------------------------------------------------------------------------- 1 | var x = 1; -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/filters/ClassifyFiles/not-unannotated-externs-2.js: -------------------------------------------------------------------------------- 1 | o['p']; -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/filters/ClassifyFiles/tst-min.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/filters/ClassifyFiles/tst.min.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/filters/ClassifyFiles/tst_min.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/filters/ClassifyFiles/unannotated-externs-1.js: -------------------------------------------------------------------------------- 1 | var x; -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/filters/ClassifyFiles/unannotated-externs-2.js: -------------------------------------------------------------------------------- 1 | o.p; -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/filters/ClassifyFiles/unannotated-externs-3.js: -------------------------------------------------------------------------------- 1 | var x; 2 | o.p; -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/filters/ClassifyFiles/unannotated-externs-4.js: -------------------------------------------------------------------------------- 1 | var x, y; -------------------------------------------------------------------------------- /javascript/ql/test/query-tests/filters/ClassifyFiles/unannotated-externs-6.js: -------------------------------------------------------------------------------- 1 | o.p.q; -------------------------------------------------------------------------------- /misc/emacs/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/misc/emacs/README.md -------------------------------------------------------------------------------- /misc/vim/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lecoursen/codeql/HEAD/misc/vim/README.md -------------------------------------------------------------------------------- /python/ql/examples/queries.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /python/ql/src/Imports/ImportTwiceOnALine.py: -------------------------------------------------------------------------------- 1 | import xxx, yyy 2 | -------------------------------------------------------------------------------- /python/ql/src/Statements/DocStrings.py: -------------------------------------------------------------------------------- 1 | def add(x, y): 2 | return x + y -------------------------------------------------------------------------------- /python/ql/src/Variables/MultiplyDefined.py: -------------------------------------------------------------------------------- 1 | x = 42 2 | x = 12 3 | print x -------------------------------------------------------------------------------- /python/ql/src/queries.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /python/ql/src/semmle/python/dataflow/Configuration.qll: -------------------------------------------------------------------------------- 1 | import old.Configuration 2 | -------------------------------------------------------------------------------- /python/ql/src/semmle/python/dataflow/DataFlow.qll: -------------------------------------------------------------------------------- 1 | import old.DataFlow 2 | -------------------------------------------------------------------------------- /python/ql/src/semmle/python/dataflow/Files.qll: -------------------------------------------------------------------------------- 1 | import old.Files 2 | -------------------------------------------------------------------------------- /python/ql/src/semmle/python/dataflow/Implementation.qll: -------------------------------------------------------------------------------- 1 | import old.Implementation 2 | -------------------------------------------------------------------------------- /python/ql/src/semmle/python/dataflow/Legacy.qll: -------------------------------------------------------------------------------- 1 | import old.Legacy 2 | -------------------------------------------------------------------------------- /python/ql/src/semmle/python/dataflow/StateTracking.qll: -------------------------------------------------------------------------------- 1 | import old.StateTracking 2 | -------------------------------------------------------------------------------- /python/ql/src/semmle/python/dataflow/TaintTracking.qll: -------------------------------------------------------------------------------- 1 | import old.TaintTracking 2 | -------------------------------------------------------------------------------- /python/ql/test/2/library-tests/backticks/test.expected: -------------------------------------------------------------------------------- 1 | | 1 | 2 | -------------------------------------------------------------------------------- /python/ql/test/2/library-tests/comprehensions/ConsistencyCheck.expected: -------------------------------------------------------------------------------- 1 | | 0 | -------------------------------------------------------------------------------- /python/ql/test/2/library-tests/locations/general/AllLocations.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/2/library-tests/modules/general/assistant.py: -------------------------------------------------------------------------------- 1 | 2 | e = 5 3 | 4 | -------------------------------------------------------------------------------- /python/ql/test/2/library-tests/modules/general/confused_elements/a.py: -------------------------------------------------------------------------------- 1 | 2 | b = 1 -------------------------------------------------------------------------------- /python/ql/test/2/library-tests/modules/general/test_star.py: -------------------------------------------------------------------------------- 1 | from test_package import * -------------------------------------------------------------------------------- /python/ql/test/2/library-tests/modules/package_members/test_package/module3.py: -------------------------------------------------------------------------------- 1 | import sys -------------------------------------------------------------------------------- /python/ql/test/2/library-tests/objects/Literals.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/2/library-tests/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --lang=2 2 | -------------------------------------------------------------------------------- /python/ql/test/2/query-tests/Classes/equals-hash/EqualsOrHash.qlref: -------------------------------------------------------------------------------- 1 | Classes/EqualsOrHash.ql -------------------------------------------------------------------------------- /python/ql/test/2/query-tests/Classes/undefined-attribute/UndefinedClassAttribute.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/2/query-tests/Exceptions/general/CatchingBaseException.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/2/query-tests/Exceptions/general/EmptyExcept.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/2/query-tests/Exceptions/general/IllegalExceptionHandlerType.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/2/query-tests/Exceptions/general/IllegalRaise.qlref: -------------------------------------------------------------------------------- 1 | Exceptions/IllegalRaise.ql -------------------------------------------------------------------------------- /python/ql/test/2/query-tests/Exceptions/general/IncorrectExceptOrder.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/2/query-tests/Expressions/UseofApply.qlref: -------------------------------------------------------------------------------- 1 | Expressions/UseofApply.ql 2 | -------------------------------------------------------------------------------- /python/ql/test/2/query-tests/Expressions/UseofInput.qlref: -------------------------------------------------------------------------------- 1 | Expressions/UseofInput.ql -------------------------------------------------------------------------------- /python/ql/test/2/query-tests/Functions/DeprecatedSliceMethod.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/2/query-tests/Imports/encoding_error/EncodingError.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/2/query-tests/Imports/syntax_error/EncodingError.qlref: -------------------------------------------------------------------------------- 1 | Imports/EncodingError.ql -------------------------------------------------------------------------------- /python/ql/test/2/query-tests/Imports/syntax_error/SyntaxError.qlref: -------------------------------------------------------------------------------- 1 | Imports/SyntaxError.ql -------------------------------------------------------------------------------- /python/ql/test/2/query-tests/Lexical/OldOctalLiteral.qlref: -------------------------------------------------------------------------------- 1 | Lexical/OldOctalLiteral.ql -------------------------------------------------------------------------------- /python/ql/test/2/query-tests/Statements/ExecUsed.qlref: -------------------------------------------------------------------------------- 1 | Statements/ExecUsed.ql -------------------------------------------------------------------------------- /python/ql/test/2/query-tests/Statements/TopLevelPrint.qlref: -------------------------------------------------------------------------------- 1 | Statements/TopLevelPrint.ql -------------------------------------------------------------------------------- /python/ql/test/2/query-tests/Statements/fake_six.py: -------------------------------------------------------------------------------- 1 | 2 | 3 | string_types = str, 4 | -------------------------------------------------------------------------------- /python/ql/test/2/query-tests/Variables/undefined/UndefinedGlobal.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/2/query-tests/Variables/undefined/UninitializedLocal.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/2/query-tests/Variables/undefined/package/module.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /python/ql/test/3/library-tests/PointsTo/import_time/Pruned.expected: -------------------------------------------------------------------------------- 1 | | 28 | 2 | | 42 | -------------------------------------------------------------------------------- /python/ql/test/3/library-tests/classes/meta/meta.expected: -------------------------------------------------------------------------------- 1 | | ClassExpr | Meta | -------------------------------------------------------------------------------- /python/ql/test/3/library-tests/locations/general/AllLocations.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/3/library-tests/modules/general/assistant.py: -------------------------------------------------------------------------------- 1 | 2 | e = 5 3 | 4 | -------------------------------------------------------------------------------- /python/ql/test/3/library-tests/modules/general/confused_elements/a.py: -------------------------------------------------------------------------------- 1 | 2 | b = 1 -------------------------------------------------------------------------------- /python/ql/test/3/library-tests/modules/general/test_star.py: -------------------------------------------------------------------------------- 1 | from package import * -------------------------------------------------------------------------------- /python/ql/test/3/library-tests/modules/package_members/test_package/module3.py: -------------------------------------------------------------------------------- 1 | import sys -------------------------------------------------------------------------------- /python/ql/test/3/library-tests/modules/package_members/test_package/module5.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/3/library-tests/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --lang=3 2 | -------------------------------------------------------------------------------- /python/ql/test/3/query-tests/Classes/equals-hash/EqualsOrHash.qlref: -------------------------------------------------------------------------------- 1 | Classes/EqualsOrHash.ql -------------------------------------------------------------------------------- /python/ql/test/3/query-tests/Classes/undefined-attribute/UndefinedClassAttribute.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/3/query-tests/Expressions/Formatting/WrongNumberArgumentsForFormat.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/3/query-tests/Expressions/TruncatedDivision/TruncatedDivision.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/3/query-tests/Expressions/UseofApply/UseofApply.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/3/query-tests/Imports/encoding_error/EncodingError.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/3/query-tests/Imports/syntax_error/EncodingError.qlref: -------------------------------------------------------------------------------- 1 | Imports/EncodingError.ql -------------------------------------------------------------------------------- /python/ql/test/3/query-tests/Imports/syntax_error/SyntaxError.qlref: -------------------------------------------------------------------------------- 1 | Imports/SyntaxError.ql -------------------------------------------------------------------------------- /python/ql/test/3/query-tests/Imports/syntax_error/test.py: -------------------------------------------------------------------------------- 1 | print "Hello World" 2 | -------------------------------------------------------------------------------- /python/ql/test/3/query-tests/Statements/general/ExecUsed.qlref: -------------------------------------------------------------------------------- 1 | Statements/ExecUsed.ql -------------------------------------------------------------------------------- /python/ql/test/3/query-tests/Statements/unreachable/UnreachableCode.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/3/query-tests/Statements/unreachable_suppressed/UnreachableCode.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/3/query-tests/Variables/undefined/UninitializedLocal.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/3/query-tests/Variables/undefined/package/module.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /python/ql/test/experimental/dataflow/ApiGraphs-py2/use.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/experimental/dataflow/ApiGraphs/mypkg/__init__.py: -------------------------------------------------------------------------------- 1 | foo = 42 2 | -------------------------------------------------------------------------------- /python/ql/test/experimental/dataflow/ApiGraphs/mypkg/bar.py: -------------------------------------------------------------------------------- 1 | pass 2 | -------------------------------------------------------------------------------- /python/ql/test/experimental/dataflow/ApiGraphs/mypkg/foo.py: -------------------------------------------------------------------------------- 1 | pass 2 | -------------------------------------------------------------------------------- /python/ql/test/experimental/dataflow/ApiGraphs/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --lang=3 -------------------------------------------------------------------------------- /python/ql/test/experimental/dataflow/ApiGraphs/use.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/experimental/dataflow/basic/localFlowStepTest.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/experimental/dataflow/basic/maximalFlowTest.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/experimental/dataflow/coverage/argumentRoutingTest.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/experimental/dataflow/coverage/dataflowTest.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/experimental/dataflow/global-flow/accesses.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/experimental/dataflow/global-flow/known.py: -------------------------------------------------------------------------------- 1 | known_attr = [1000] 2 | -------------------------------------------------------------------------------- /python/ql/test/experimental/dataflow/import-helper/mypkg/__init__.py: -------------------------------------------------------------------------------- 1 | foo = 42 2 | -------------------------------------------------------------------------------- /python/ql/test/experimental/dataflow/import-helper/mypkg/bar.py: -------------------------------------------------------------------------------- 1 | pass 2 | -------------------------------------------------------------------------------- /python/ql/test/experimental/dataflow/import-helper/mypkg/foo.py: -------------------------------------------------------------------------------- 1 | pass 2 | -------------------------------------------------------------------------------- /python/ql/test/experimental/dataflow/pep_328/__init__.py: -------------------------------------------------------------------------------- 1 | pass 2 | -------------------------------------------------------------------------------- /python/ql/test/experimental/dataflow/pep_328/package/__init__.py: -------------------------------------------------------------------------------- 1 | bar = "bar" 2 | -------------------------------------------------------------------------------- /python/ql/test/experimental/dataflow/pep_328/package/moduleA.py: -------------------------------------------------------------------------------- 1 | foo = "foo" 2 | -------------------------------------------------------------------------------- /python/ql/test/experimental/dataflow/pep_328/package/subpackage1/moduleY.py: -------------------------------------------------------------------------------- 1 | spam = "spam" 2 | -------------------------------------------------------------------------------- /python/ql/test/experimental/dataflow/pep_328/package/subpackage2/__init__.py: -------------------------------------------------------------------------------- 1 | pass 2 | -------------------------------------------------------------------------------- /python/ql/test/experimental/dataflow/pep_328/package/subpackage2/moduleZ.py: -------------------------------------------------------------------------------- 1 | eggs = "eggs" 2 | -------------------------------------------------------------------------------- /python/ql/test/experimental/dataflow/typetracking/tracked.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/experimental/dataflow/variable-capture/CaptureTest.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/experimental/library-tests/CallGraph-implicit-init/foo_explicit/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/experimental/library-tests/CallGraph/code/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/ControlFlow/PointsToSupport/UseFromDefinition.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/ControlFlow/dominators/idom.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/ControlFlow/general/ImmediateDominatorCheck.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/ControlFlow/truefalse/TrueAndFalseSuccessor.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/PointsTo/absent/module.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/PointsTo/import_star/nested/__init__.py: -------------------------------------------------------------------------------- 1 | from .nested import * -------------------------------------------------------------------------------- /python/ql/test/library-tests/PointsTo/imports/package/module2.py: -------------------------------------------------------------------------------- 1 | x = 0 2 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/PointsTo/imports/package/x.py: -------------------------------------------------------------------------------- 1 | 2 | from sys import * 3 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/PointsTo/new/Consistency.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/PointsTo/new/PointsToMissing.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/PointsTo/new/code/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/PointsTo/new/code/package/module2.py: -------------------------------------------------------------------------------- 1 | x = 0 2 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/PointsTo/new/code/package/x.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/PointsTo/new/test.py: -------------------------------------------------------------------------------- 1 | from code import * 2 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/encoding/utf8_bom.py: -------------------------------------------------------------------------------- 1 | #Starts with a BOM 2 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/exprs/ast/AstParent.expected: -------------------------------------------------------------------------------- 1 | | 0 | 2 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/frameworks/crypto/ConceptsTest.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/frameworks/cryptodome/ConceptsTest.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/frameworks/cryptography/ConceptsTest.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/frameworks/dill/ConceptsTest.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/frameworks/django-v1/ConceptsTest.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/frameworks/django-v2-v3/ConceptsTest.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/frameworks/django-v2-v3/testapp/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/frameworks/django-v2-v3/testapp/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/frameworks/django-v2-v3/testproj/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/frameworks/django/ConceptsTest.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/frameworks/fabric/ConceptsTest.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/frameworks/flask/ConceptsTest.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/frameworks/invoke/ConceptsTest.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/frameworks/mysql-connector-python/ConceptsTest.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/frameworks/mysqldb/ConceptsTest.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/frameworks/pymysql/ConceptsTest.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/frameworks/stdlib-py2/ConceptsTest.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/frameworks/stdlib-py3/ConceptsTest.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/frameworks/stdlib/ConceptsTest.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/frameworks/tornado/ConceptsTest.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/frameworks/yaml/ConceptsTest.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/jump_to_defn/Consistency.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/modules/duplicate_name/test.py: -------------------------------------------------------------------------------- 1 | import sqlite3.dump 2 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/modules/duplicate_name/venv/sqlite3/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/modules/duplicate_name/venv/sqlite3/dump.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/modules/overlapping-paths/outer/inner/imported/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/modules/overlapping-paths/outer/inner/imported/x.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/modules/overlapping-paths/outer/inner/y.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/modules/overlapping-paths/src/package/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/modules/overlapping-paths/src/script.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/modules/spurious_init/root/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/modules/spurious_init/root/src-folder/package/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/modules/spurious_init/root/src-folder/package/module.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/modules/usage/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: -F script 2 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/objects/Literals.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --max-import-depth=1 2 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/stmts/general/AstParent.expected: -------------------------------------------------------------------------------- 1 | | 0 | 2 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/taint/general/TaintConsistency.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/taint/general/printAst.ql: -------------------------------------------------------------------------------- 1 | import semmle.python.PrintAst 2 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/thrift/Test.expected: -------------------------------------------------------------------------------- 1 | | Thrift | 2 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/types/functions/Zope.expected: -------------------------------------------------------------------------------- 1 | | Function Z.yes | 2 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/types/functions/zope/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/library-tests/web/falcon/Sinks.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/queries.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Classes/equals-attr/DefineEqualsWhenAddingAttributes.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Exceptions/general/IllegalRaise.qlref: -------------------------------------------------------------------------------- 1 | Exceptions/IllegalRaise.ql -------------------------------------------------------------------------------- /python/ql/test/query-tests/Expressions/Arguments/mox.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Expressions/general/EqualsNone.qlref: -------------------------------------------------------------------------------- 1 | Expressions/EqualsNone.ql -------------------------------------------------------------------------------- /python/ql/test/query-tests/Expressions/general/ExplcitCallToDel.expected: -------------------------------------------------------------------------------- 1 | Failure -------------------------------------------------------------------------------- /python/ql/test/query-tests/Functions/general/NonCls.qlref: -------------------------------------------------------------------------------- 1 | Functions/NonCls.ql 2 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Functions/general/NonSelf.qlref: -------------------------------------------------------------------------------- 1 | Functions/NonSelf.ql 2 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Functions/general/mox.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Functions/general/zope/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Imports/PyCheckerTests/test_module.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Imports/cyclic-module-package-fp/false-negative/bar/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Imports/cyclic-module-package-fp/true-negative/bar/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Imports/cyclic-module/module4.py: -------------------------------------------------------------------------------- 1 | import module1 -------------------------------------------------------------------------------- /python/ql/test/query-tests/Imports/cyclic-module/module5.py: -------------------------------------------------------------------------------- 1 | import module1 -------------------------------------------------------------------------------- /python/ql/test/query-tests/Imports/cyclic-module/module6.py: -------------------------------------------------------------------------------- 1 | def foo(): 2 | import module7 -------------------------------------------------------------------------------- /python/ql/test/query-tests/Imports/cyclic-module/module7.py: -------------------------------------------------------------------------------- 1 | from module1 import a1 -------------------------------------------------------------------------------- /python/ql/test/query-tests/Imports/cyclic-module/typing.py: -------------------------------------------------------------------------------- 1 | TYPE_CHECKING = False 2 | 3 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Imports/general/module1.py: -------------------------------------------------------------------------------- 1 | def func(): 2 | pass 3 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Imports/general/module_without_all.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Imports/general/mutable_attr.py: -------------------------------------------------------------------------------- 1 | x = 1 2 | y = 2 3 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Lexical/ToDoComment/ToDoComment.qlref: -------------------------------------------------------------------------------- 1 | Lexical/ToDoComment.ql -------------------------------------------------------------------------------- /python/ql/test/query-tests/Metrics/imports/DirectImports.qlref: -------------------------------------------------------------------------------- 1 | Metrics/DirectImports.ql 2 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Metrics/imports/module1.py: -------------------------------------------------------------------------------- 1 | import module2 2 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Metrics/imports/module3.py: -------------------------------------------------------------------------------- 1 | import module4 -------------------------------------------------------------------------------- /python/ql/test/query-tests/Metrics/imports/module4.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Metrics/lines/CommentRatio.qlref: -------------------------------------------------------------------------------- 1 | Metrics/CommentRatio.ql 2 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Metrics/lines/FLinesOfCode.qlref: -------------------------------------------------------------------------------- 1 | Metrics/FLinesOfCode.ql 2 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Metrics/ratios/CommentRatio.qlref: -------------------------------------------------------------------------------- 1 | Metrics/CommentRatio.ql -------------------------------------------------------------------------------- /python/ql/test/query-tests/Metrics/ratios/DocStringRatio.qlref: -------------------------------------------------------------------------------- 1 | Metrics/DocStringRatio.ql -------------------------------------------------------------------------------- /python/ql/test/query-tests/Metrics/tests/FNumberOfTests.qlref: -------------------------------------------------------------------------------- 1 | Metrics/FNumberOfTests.ql -------------------------------------------------------------------------------- /python/ql/test/query-tests/Metrics/tests/pytest.py: -------------------------------------------------------------------------------- 1 | """ 2 | Fake pytest module 3 | """ -------------------------------------------------------------------------------- /python/ql/test/query-tests/Numerics/Pythagorean.qlref: -------------------------------------------------------------------------------- 1 | Numerics/Pythagorean.ql -------------------------------------------------------------------------------- /python/ql/test/query-tests/Security/CWE-209/ExceptionInfo.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Security/CWE-215/settings.py: -------------------------------------------------------------------------------- 1 | ALWAYS_TRUE = True 2 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Security/lib/Crypto/PublicKey/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Security/lib/Crypto/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Security/lib/cryptography/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Security/lib/cryptography/hazmat/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Security/lib/cryptography/hazmat/primitives/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Security/lib/cryptography/hazmat/primitives/asymmetric/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Security/lib/django/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Security/lib/django/conf/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Security/lib/django/db/__init__.py: -------------------------------------------------------------------------------- 1 | connection = object() 2 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Security/lib/flask/urls.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Security/lib/lxml/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Security/lib/paramiko/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Security/lib/pyOpenSSL/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Security/lib/pyramid/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Security/lib/tornado/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Security/lib/traceback.py: -------------------------------------------------------------------------------- 1 | def format_exc(): 2 | return None -------------------------------------------------------------------------------- /python/ql/test/query-tests/Security/lib/twisted/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Security/lib/twisted/web/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Security/lib/yaml.py: -------------------------------------------------------------------------------- 1 | def load(s): 2 | pass 3 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Security/lib/zope/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Statements/DocStrings/DocStrings.qlref: -------------------------------------------------------------------------------- 1 | Statements/DocStrings.ql -------------------------------------------------------------------------------- /python/ql/test/query-tests/Statements/asserts/AssertOnTuple.qlref: -------------------------------------------------------------------------------- 1 | Statements/AssertOnTuple.ql -------------------------------------------------------------------------------- /python/ql/test/query-tests/Statements/exit/UseOfExit.qlref: -------------------------------------------------------------------------------- 1 | Statements/UseOfExit.ql 2 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Statements/unreachable_nonlocal/UnreachableCode.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Testing/ImpreciseAssert.qlref: -------------------------------------------------------------------------------- 1 | Testing/ImpreciseAssert.ql 2 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/Variables/general/Global.qlref: -------------------------------------------------------------------------------- 1 | Variables/Global.ql -------------------------------------------------------------------------------- /python/ql/test/query-tests/Variables/general/ShadowGlobal.qlref: -------------------------------------------------------------------------------- 1 | Variables/ShadowGlobal.ql 2 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/analysis/Consistency/Consistency.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/analysis/Consistency/Consistency.qlref: -------------------------------------------------------------------------------- 1 | analysis/Consistency.ql 2 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/analysis/Consistency/package/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/analysis/jump_to_defn/module.py: -------------------------------------------------------------------------------- 1 | foo = 1 2 | bar = 2 3 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/analysis/jump_to_defn/package/mod.py: -------------------------------------------------------------------------------- 1 | 2 | x = 1 3 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/analysis/pointsto/FailedInference.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/analysis/pointsto/KeyPointsToFailure.expected: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/analysis/pointsto/Pruned.expected: -------------------------------------------------------------------------------- 1 | | 1183 | 2 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/analysis/pointsto/Pruned.qlref: -------------------------------------------------------------------------------- 1 | analysis/Pruned.ql 2 | -------------------------------------------------------------------------------- /python/ql/test/query-tests/options: -------------------------------------------------------------------------------- 1 | semmle-extractor-options: --max-import-depth=1 2 | --------------------------------------------------------------------------------