brewery
notashelf /
554f7f21f155dced1b020f0655cd4f2a320c0ab4

nixir

public

Import-resolving Nix IR plugin

Star0tarball
clone
ssh://git@git.notashelf.dev:33/notashelf/nixir.git

Commit 554f7f21f155

tarball

NotAShelf <raf@notashelf.dev> · 2026-04-24 20:13 UTC

unverified6 files changed+31-8
meta: CTest integration; expand test coverage

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I3e6bf966985f6212e99d146cb18e4e2f6a6a6964
diff --git a/CMakeLists.txt b/CMakeLists.txtindex 10ed5a2..1516e03 100644--- a/CMakeLists.txt+++ b/CMakeLists.txt@@ -17,9 +17,11 @@ pkg_check_modules(NIX_MAIN REQUIRED IMPORTED_TARGET nix-main) add_executable(nix-irc     src/irc/main.cpp     src/irc/parser.cpp+    src/irc/lexer.cpp     src/irc/resolver.cpp     src/irc/ir_gen.cpp     src/irc/serializer.cpp+    src/irc/types.cpp )  target_include_directories(nix-irc PRIVATE@@ -38,10 +40,12 @@ target_link_libraries(nix-irc PRIVATE add_library(nix-ir-plugin MODULE     src/plugin.cpp     src/irc/parser.cpp+    src/irc/lexer.cpp     src/irc/resolver.cpp     src/irc/ir_gen.cpp     src/irc/serializer.cpp     src/irc/evaluator.cpp+    src/irc/types.cpp )  # Include directories from pkg-config@@ -65,6 +69,10 @@ target_link_libraries(nix-ir-plugin PRIVATE     ${NIX_MAIN_LINK_LIBRARIES} ) +# Set output directories to build/+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})+ # Set output name set_target_properties(nix-ir-plugin PROPERTIES     PREFIX ""@@ -79,6 +87,8 @@ add_executable(regression_test     tests/regression_test.cpp     src/irc/serializer.cpp     src/irc/parser.cpp+    src/irc/lexer.cpp+    src/irc/types.cpp )  target_include_directories(regression_test PRIVATE@@ -93,3 +103,7 @@ target_link_libraries(regression_test PRIVATE     ${NIX_EXPR_LINK_LIBRARIES}     ${NIX_UTIL_LINK_LIBRARIES} )++# CTest integration+enable_testing()+add_test(NAME regression_test COMMAND regression_test)diff --git a/flake.nix b/flake.nixindex 4f98a7f..ad043d0 100644--- a/flake.nix+++ b/flake.nix@@ -11,17 +11,19 @@     in {       default = pkgs.mkShell {         name = "nixir";-        buildInputs = with pkgs; [+        buildInputs = with pkgs; let+          nixForLinking = nixVersions.nixComponents_2_32;+        in [           boost.dev           libblake3.dev+          pegtl -          nixVersions.nixComponents_2_32.nix-store-          nixVersions.nixComponents_2_32.nix-expr-          nixVersions.nixComponents_2_32.nix-cmd-          nixVersions.nixComponents_2_32.nix-fetchers-          nixVersions.nixComponents_2_32.nix-main-          nixVersions.nixComponents_2_32.nix-util-          nixVersions.nix_2_32+          nixForLinking.nix-store+          nixForLinking.nix-expr+          nixForLinking.nix-cmd+          nixForLinking.nix-fetchers+          nixForLinking.nix-main+          nixForLinking.nix-util         ];          nativeBuildInputs = with pkgs; [diff --git a/tests/fixtures/lambda_pattern.nixr b/tests/fixtures/lambda_pattern.nixrnew file mode 100644index 0000000..4e34156Binary files /dev/null and b/tests/fixtures/lambda_pattern.nixr differdiff --git a/tests/fixtures/string_interp.nixr b/tests/fixtures/string_interp.nixrnew file mode 100644index 0000000..0c4d4a2Binary files /dev/null and b/tests/fixtures/string_interp.nixr differdiff --git a/tests/language/interp_test.nix b/tests/language/interp_test.nixnew file mode 100644index 0000000..73b4c16--- /dev/null+++ b/tests/language/interp_test.nix@@ -0,0 +1,2 @@+# Test string interpolation+let x = "world"; in "Hello ${x}!"diff --git a/tests/language/pattern_test.nix b/tests/language/pattern_test.nixnew file mode 100644index 0000000..e654f6c--- /dev/null+++ b/tests/language/pattern_test.nix@@ -0,0 +1,5 @@+# Test lambda patterns+({+  name,+  version ? "1.0",+}: "${name}-${version}") {name = "test";}