summary refs log tree commit diff
path: root/lib
diff options
context:
space:
mode:
authorDaniel Thwaites <danthwaites30@btinternet.com>2022-04-22 17:43:25 +0100
committerGitHub <noreply@github.com>2022-04-22 12:43:25 -0400
commit4f9b8a07024c3397d33df3f26906839cd03f0297 (patch)
tree7a72fb7d1a1bfb8440a00d5a8ba7abfd6d6e7289 /lib
parent114bfa7d5c4e618c1eafe79cc42975389307048e (diff)
downloadnixpkgs-4f9b8a07024c3397d33df3f26906839cd03f0297.tar
nixpkgs-4f9b8a07024c3397d33df3f26906839cd03f0297.tar.gz
nixpkgs-4f9b8a07024c3397d33df3f26906839cd03f0297.tar.bz2
nixpkgs-4f9b8a07024c3397d33df3f26906839cd03f0297.tar.lz
nixpkgs-4f9b8a07024c3397d33df3f26906839cd03f0297.tar.xz
nixpkgs-4f9b8a07024c3397d33df3f26906839cd03f0297.tar.zst
nixpkgs-4f9b8a07024c3397d33df3f26906839cd03f0297.zip
lib/strings: optimise hasInfix function (#168175)
* lib/strings: optimise hasInfix function

* lib/strings: optimise hasInfix further using regex

* rstudio: call hasInfix with a string

* lib/strings: remove let from hasInfix

Co-authored-by: pennae <82953136+pennae@users.noreply.github.com>

Co-authored-by: pennae <82953136+pennae@users.noreply.github.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/strings.nix5
1 files changed, 1 insertions, 4 deletions
diff --git a/lib/strings.nix b/lib/strings.nix
index 820d1901f94..11066890ec3 100644
--- a/lib/strings.nix
+++ b/lib/strings.nix
@@ -253,10 +253,7 @@ rec {
       => false
   */
   hasInfix = infix: content:
-    let
-      drop = x: substring 1 (stringLength x) x;
-    in hasPrefix infix content
-      || content != "" && hasInfix infix (drop content);
+    builtins.match ".*${escapeRegex infix}.*" content != null;
 
   /* Convert a string to a list of characters (i.e. singleton strings).
      This allows you to, e.g., map a function over each character.  However,