@@ -2139,7 +2139,8 @@ private predicate expensiveLen2unfolding(TypedContent tc, Configuration config)
21392139 ) and
21402140 accessPathApproxCostLimits ( apLimit , tupleLimit ) and
21412141 apLimit < tails and
2142- tupleLimit < ( tails - 1 ) * nodes
2142+ tupleLimit < ( tails - 1 ) * nodes and
2143+ not tc .forceHighPrecision ( )
21432144 )
21442145}
21452146
@@ -2973,12 +2974,15 @@ private AccessPathApprox getATail(AccessPathApprox apa, Configuration config) {
29732974 * expected to be expensive. Holds with `unfold = true` otherwise.
29742975 */
29752976private predicate evalUnfold ( AccessPathApprox apa , boolean unfold , Configuration config ) {
2976- exists ( int aps , int nodes , int apLimit , int tupleLimit |
2977- aps = countPotentialAps ( apa , config ) and
2978- nodes = countNodesUsingAccessPath ( apa , config ) and
2979- accessPathCostLimits ( apLimit , tupleLimit ) and
2980- if apLimit < aps and tupleLimit < ( aps - 1 ) * nodes then unfold = false else unfold = true
2981- )
2977+ if apa .getHead ( ) .forceHighPrecision ( )
2978+ then unfold = true
2979+ else
2980+ exists ( int aps , int nodes , int apLimit , int tupleLimit |
2981+ aps = countPotentialAps ( apa , config ) and
2982+ nodes = countNodesUsingAccessPath ( apa , config ) and
2983+ accessPathCostLimits ( apLimit , tupleLimit ) and
2984+ if apLimit < aps and tupleLimit < ( aps - 1 ) * nodes then unfold = false else unfold = true
2985+ )
29822986}
29832987
29842988/**
@@ -3248,7 +3252,7 @@ class PathNode extends TPathNode {
32483252 * The location spans column `startcolumn` of line `startline` to
32493253 * column `endcolumn` of line `endline` in file `filepath`.
32503254 * For more information, see
3251- * [Locations](https://help.semmle .com/QL/learn-ql/ql/ locations.html ).
3255+ * [Locations](https://codeql.github .com/docs/writing-codeql-queries/providing- locations-in-codeql-queries/ ).
32523256 */
32533257 predicate hasLocationInfo (
32543258 string filepath , int startline , int startcolumn , int endline , int endcolumn
@@ -4033,7 +4037,7 @@ private module FlowExploration {
40334037 * The location spans column `startcolumn` of line `startline` to
40344038 * column `endcolumn` of line `endline` in file `filepath`.
40354039 * For more information, see
4036- * [Locations](https://help.semmle .com/QL/learn-ql/ql/ locations.html ).
4040+ * [Locations](https://codeql.github .com/docs/writing-codeql-queries/providing- locations-in-codeql-queries/ ).
40374041 */
40384042 predicate hasLocationInfo (
40394043 string filepath , int startline , int startcolumn , int endline , int endcolumn
0 commit comments