test: Update port_assign.sv
-// RUN: moore %s -e A0
+// RUN: moore %s -e A -e C -e N1 -e N2 -e N3
-module A1 (input int a, output int b);
+module X (input int a, output int b);
endmodule
-module A0;
+module A;
int a, b;
- A1 foo(a, b);
+ X foo(a, b);
endmodule
-// CHECK: entity @A1 (i32$ %a) -> (i32$ %b) {
-// CHECK: %0 = const i32 0
-// CHECK: %1 = const time 0s
-// CHECK: drv i32$ %b, %0, %1
-// CHECK: }
-// CHECK:
-// CHECK: entity @A0 () -> () {
+// CHECK: entity @A () -> () {
// CHECK: %0 = const i32 0
// CHECK: %a = sig i32 %0
// CHECK: %1 = const i32 0
@@ -24,7 +18,7 @@ endmodule
// CHECK: %3 = sig i32 %2
// CHECK: %4 = const time 0s 1e
// CHECK: drv i32$ %3, %a1, %4
-// CHECK: inst @A1 (i32$ %3) -> (i32$ %b)
+// CHECK: inst @X (i32$ %3) -> (i32$ %b)
// CHECK: }
// module B1 ({x,y});
@@ -36,3 +30,39 @@ endmodule
// logic [1:0] x;
// B1 foo(x);
// endmodule
+
+
+module C;
+ int a, b;
+ X foo(a + 2, b);
+endmodule
+
+// CHECK: entity @C () -> () {
+// CHECK: %0 = const i32 0
+// CHECK: %a = sig i32 %0
+// CHECK: %1 = const i32 0
+// CHECK: %b = sig i32 %1
+// CHECK: %a1 = prb i32$ %a
+// CHECK: %2 = const i32 2
+// CHECK: %3 = add i32 %a1, %2
+// CHECK: %4 = const i32 0
+// CHECK: %5 = sig i32 %4
+// CHECK: %6 = const time 0s 1e
+// CHECK: drv i32$ %5, %3, %6
+// CHECK: inst @X (i32$ %5) -> (i32$ %b)
+// CHECK: }
+
+module N1;
+ int a, b;
+ X foo(.a, .b);
+endmodule
+
+module N2;
+ int a, b;
+ X foo(.*);
+endmodule
+
+module N3;
+ int a, b;
+ X foo(a, .b());
+endmodule
