From be137f8a0d827373c7bb4d2841088447adccbf67 Mon Sep 17 00:00:00 2001 From: Gavrilikhin Daniil Date: Tue, 14 May 2024 21:16:24 +0800 Subject: [PATCH] Normalize function call printing (#164) --- src/hir/expressions/call.rs | 20 +-- .../snapshots/ppl__tests__address_of.hir.snap | 14 +- .../snapshots/ppl__tests__array.hir.snap | 160 +++++++++--------- .../snapshots/ppl__tests__clone.hir.snap | 24 +-- .../ppl__tests__common_functions.hir.snap | 4 +- src/tests/snapshots/ppl__tests__deps.hir.snap | 2 +- .../ppl__tests__deref_member_ref.hir.snap | 6 +- .../snapshots/ppl__tests__destructor.hir.snap | 8 +- .../ppl__tests__empty_constructor.hir.snap | 6 +- .../snapshots/ppl__tests__escaped_id.hir.snap | 4 +- .../snapshots/ppl__tests__generics.hir.snap | 16 +- .../snapshots/ppl__tests__import_all.hir.snap | 8 +- .../snapshots/ppl__tests__integer.hir.snap | 32 ++-- .../snapshots/ppl__tests__memory.hir.snap | 18 +- .../ppl__tests__monomorphize.hir.snap | 8 +- ...__tests__monomorphize_predeclared.hir.snap | 8 +- .../snapshots/ppl__tests__multifile.hir.snap | 2 +- .../ppl__tests__plus_assign.hir.snap | 22 +-- .../ppl__tests__predeclare_function.hir.snap | 14 +- .../ppl__tests__predeclare_vars.hir.snap | 14 +- .../snapshots/ppl__tests__rational.hir.snap | 76 ++++----- .../ppl__tests__reference_mut.hir.snap | 16 +- .../ppl__tests__reference_to_literal.hir.snap | 8 +- .../ppl__tests__reference_to_none.hir.snap | 4 +- .../snapshots/ppl__tests__references.hir.snap | 24 +-- src/tests/snapshots/ppl__tests__star.hir.snap | 4 +- .../snapshots/ppl__tests__string.hir.snap | 20 +-- .../ppl__tests__supertraits.hir.snap | 18 +- .../snapshots/ppl__tests__traits.hir.snap | 10 +- .../ppl__tests__type_as_value.hir.snap | 36 ++-- .../snapshots/ppl__tests__type_of.hir.snap | 8 +- 31 files changed, 304 insertions(+), 310 deletions(-) diff --git a/src/hir/expressions/call.rs b/src/hir/expressions/call.rs index 8a9f4e72..b7e2e7a9 100644 --- a/src/hir/expressions/call.rs +++ b/src/hir/expressions/call.rs @@ -1,7 +1,8 @@ use derive_visitor::DriveMut; -use crate::hir::{Expression, Function, FunctionNamePart, Generic, Type, Typed}; +use crate::hir::{Expression, Function, Generic, Type, Typed}; use crate::mutability::Mutable; +use crate::named::Named; use crate::syntax::Ranged; use std::fmt::Display; use std::ops::Range; @@ -31,22 +32,15 @@ impl Display for Call { let indent = "\t".repeat(f.width().unwrap_or(0)); write!(f, "{indent}")?; - let mut arg = self.args.iter(); - write!( f, - "{}", - self.function - .read() - .unwrap() - .name_parts() + "`{}`({})", + self.function.name(), + self.args .iter() - .map(|part| match part { - FunctionNamePart::Text(text) => text.to_string(), - FunctionNamePart::Parameter(_) => arg.next().unwrap().to_string(), - }) + .map(|arg| arg.to_string()) .collect::>() - .join(" ") + .join(", ") ) } } diff --git a/src/tests/snapshots/ppl__tests__address_of.hir.snap b/src/tests/snapshots/ppl__tests__address_of.hir.snap index cddd1319..ceadbc8a 100644 --- a/src/tests/snapshots/ppl__tests__address_of.hir.snap +++ b/src/tests/snapshots/ppl__tests__address_of.hir.snap @@ -3,12 +3,12 @@ source: src/tests/mod.rs expression: hir --- let x: Integer = 0 -let address: MemoryAddress = address of (&x:Reference) -let x_mut_ref: ReferenceMut = (Type:Type) at (address:MemoryAddress) -println clone (x:Integer) +let address: MemoryAddress = `address of <:Reference>`((&x:Reference)) +let x_mut_ref: ReferenceMut = `<:Type> at <:MemoryAddress>`((Type:Type), (address:MemoryAddress)) +`println <:Integer>`(`clone <:Reference>`((x:Integer))) (x_mut_ref:ReferenceMut) = 1 -println clone (x:Integer) -destroy (x:Integer) +`println <:Integer>`(`clone <:Reference>`((x:Integer))) +`destroy <:ReferenceMut>`((x:Integer)) ==MONOMORPHIZED== @@ -23,7 +23,7 @@ fn > at -> ReferenceMut -> String fn println -> None: - let $tmp@176: None = println String from (x:Integer) + let $tmp@176: None = `println <:String>`(`String from <:Integer>`((x:Integer))) return ($tmp@176:None) @@ -32,5 +32,5 @@ fn println -> None: fn String from <$arg0: Integer> -> String fn println -> None: - let $tmp@176: None = println String from (x:Integer) + let $tmp@176: None = `println <:String>`(`String from <:Integer>`((x:Integer))) return ($tmp@176:None) diff --git a/src/tests/snapshots/ppl__tests__array.hir.snap b/src/tests/snapshots/ppl__tests__array.hir.snap index a26a6b93..55e439af 100644 --- a/src/tests/snapshots/ppl__tests__array.hir.snap +++ b/src/tests/snapshots/ppl__tests__array.hir.snap @@ -2,42 +2,42 @@ source: src/tests/mod.rs expression: hir --- -let mut arr: Array = (Type:Type) [ ] -let mut it: Iterator = iterator for (&arr:ReferenceMut>) -println (arr:Array) -if (&arr:ReferenceMut>) is empty: - println "Empty" +let mut arr: Array = `<:Type> [ ]`((Type:Type)) +let mut it: Iterator = `iterator for <:Reference>>`((&arr:ReferenceMut>)) +`println <:Array>`((arr:Array)) +if `<:Reference>> is empty`((&arr:ReferenceMut>)): + `println <:String>`("Empty") -push 1 to (&arr:ReferenceMut>) -println (arr:Array) -if (&arr:ReferenceMut>) is not empty: - println "Not empty" +`push <:Integer> to <:ReferenceMut>>`(1, (&arr:ReferenceMut>)) +`println <:Array>`((arr:Array)) +if `<:Reference>> is not empty`((&arr:ReferenceMut>)): + `println <:String>`("Not empty") -println clone (*(&arr:ReferenceMut>) [ 0 ]:Integer) -while (&it:ReferenceMut>) exists: - println clone (*value from (&it:ReferenceMut>):Integer) - advance (&it:ReferenceMut>) +`println <:Integer>`(`clone <:Reference>`((*`<:Reference>> [ <:Integer> ]`((&arr:ReferenceMut>), 0):Integer))) +while `<:Reference>> exists`((&it:ReferenceMut>)): + `println <:Integer>`(`clone <:Reference>`((*`value from <:Reference>>`((&it:ReferenceMut>)):Integer))) + `advance <:ReferenceMut>>`((&it:ReferenceMut>)) ==MONOMORPHIZED== fn size of > -> Integer: - let $tmp@4399: Integer = clone (ty:Type).size + let $tmp@4399: Integer = `clone <:Reference>`((ty:Type).size) return ($tmp@4399:Integer) fn allocate <$arg1: Type> -> MemoryAddress: - let $tmp@760: MemoryAddress = allocate clone (n:Integer) * size of (Type:Type) bytes - destroy (n:Integer) + let $tmp@760: MemoryAddress = `allocate <:Integer> bytes`(`<:Integer> * <:Integer>`(`clone <:Reference>`((n:Integer)), `size of <:Type>`((Type:Type)))) + `destroy <:ReferenceMut>`((n:Integer)) return ($tmp@760:MemoryAddress) fn <$arg0: Type> [ ] -> Array: let capacity: Integer = 8 - let data: MemoryAddress = allocate clone (capacity:Integer) (Type:Type) - let $tmp@260: Array = Array { size: 0, capacity: clone (capacity:Integer), data: (data:MemoryAddress) } - destroy (capacity:Integer) + let data: MemoryAddress = `allocate <:Integer> <:Type>`(`clone <:Reference>`((capacity:Integer)), (Type:Type)) + let $tmp@260: Array = Array { size: 0, capacity: `clone <:Reference>`((capacity:Integer)), data: (data:MemoryAddress) } + `destroy <:ReferenceMut>`((capacity:Integer)) return ($tmp@260:Array) @@ -48,41 +48,41 @@ fn iterator for >> -> Iterator fn String from >> -> String: let mut str: String = "[" - if (array:Reference>) is not empty: - (&str:ReferenceMut) += String from (*(array:Reference>) [ 0 ]:Integer) + if `<:Reference>> is not empty`((array:Reference>)): + `<:ReferenceMut> += <:String>`((&str:ReferenceMut), `String from <:Integer>`((*`<:Reference>> [ <:Integer> ]`((array:Reference>), 0):Integer))) let mut i: Integer = 1 - while clone (i:Integer) < clone (*array:Array).size: - (&str:ReferenceMut) += ", " - (&str:ReferenceMut) += String from (*(array:Reference>) [ clone (i:Integer) ]:Integer) - (&i:ReferenceMut) += 1 + while `<:Integer> < <:Integer>`(`clone <:Reference>`((i:Integer)), `clone <:Reference>`((*array:Array).size)): + `<:ReferenceMut> += <:String>`((&str:ReferenceMut), ", ") + `<:ReferenceMut> += <:String>`((&str:ReferenceMut), `String from <:Integer>`((*`<:Reference>> [ <:Integer> ]`((array:Reference>), `clone <:Reference>`((i:Integer))):Integer))) + `<:ReferenceMut> += <:Integer>`((&i:ReferenceMut), 1) - destroy (i:Integer) + `destroy <:ReferenceMut>`((i:Integer)) - (&str:ReferenceMut) += "]" - let $tmp@1462: String = clone (str:String) - destroy (str:String) + `<:ReferenceMut> += <:String>`((&str:ReferenceMut), "]") + let $tmp@1462: String = `clone <:Reference>`((str:String)) + `destroy <:ReferenceMut>`((str:String)) return ($tmp@1462:String) fn println > -> None: - let $tmp@176: None = println String from (x:Array) + let $tmp@176: None = `println <:String>`(`String from <:Reference>>`((x:Array))) return ($tmp@176:None) fn >> is empty -> Bool: - let $tmp@1137: Bool = clone (*array:Array).size == 0 + let $tmp@1137: Bool = `<:Integer> == <:Integer>`(`clone <:Reference>`((*array:Array).size), 0) return ($tmp@1137:Bool) fn size of > -> Integer: - let $tmp@4399: Integer = clone (ty:Type).size + let $tmp@4399: Integer = `clone <:Reference>`((ty:Type).size) return ($tmp@4399:Integer) fn allocate <$arg1: Type> -> MemoryAddress: - let $tmp@760: MemoryAddress = allocate clone (n:Integer) * size of (Type:Type) bytes - destroy (n:Integer) + let $tmp@760: MemoryAddress = `allocate <:Integer> bytes`(`<:Integer> * <:Integer>`(`clone <:Reference>`((n:Integer)), `size of <:Type>`((Type:Type)))) + `destroy <:ReferenceMut>`((n:Integer)) return ($tmp@760:MemoryAddress) @@ -93,7 +93,7 @@ fn > at -> ReferenceMut > at -> ReferenceMut fn size of > -> Integer: - let $tmp@4399: Integer = clone (ty:Type).size + let $tmp@4399: Integer = `clone <:Reference>`((ty:Type).size) return ($tmp@4399:Integer) @@ -101,8 +101,8 @@ fn size of > -> Integer: fn > at -> ReferenceMut fn >> [ ] -> Reference: - let address: MemoryAddress = (*array:Array).data + (i:Integer) * size of (Type:Type) - return (Type:Type) at (address:MemoryAddress) + let address: MemoryAddress = `<:MemoryAddress> + <:Integer>`((*array:Array).data, `<:Integer> * <:Integer>`((i:Integer), `size of <:Type>`((Type:Type)))) + return `<:Type> at <:MemoryAddress>`((Type:Type), (address:MemoryAddress)) @mangle_as("read_memory") @@ -112,60 +112,60 @@ fn > at -> ReferenceMut > at -> ReferenceMut fn push to >> -> None: - if clone (*array:Array).size == clone (*array:Array).capacity: - let new_capacity: Integer = clone (*array:Array).capacity * 2 - let new_data: MemoryAddress = allocate clone (new_capacity:Integer) (Type:Type) + if `<:Integer> == <:Integer>`(`clone <:Reference>`((*array:Array).size), `clone <:Reference>`((*array:Array).capacity)): + let new_capacity: Integer = `<:Integer> * <:Integer>`(`clone <:Reference>`((*array:Array).capacity), 2) + let new_data: MemoryAddress = `allocate <:Integer> <:Type>`(`clone <:Reference>`((new_capacity:Integer)), (Type:Type)) let mut i: Integer = 0 - while clone (i:Integer) < clone (*array:Array).size: - let value: ReferenceMut = (Type:Type) at (new_data:MemoryAddress) + clone (i:Integer) - (value:ReferenceMut) = (*(array:ReferenceMut>) [ clone (i:Integer) ]:Integer) - destroy (i:Integer) - (i:Integer) = clone (i:Integer) + 1 + while `<:Integer> < <:Integer>`(`clone <:Reference>`((i:Integer)), `clone <:Reference>`((*array:Array).size)): + let value: ReferenceMut = `<:Type> at <:MemoryAddress>`((Type:Type), `<:MemoryAddress> + <:Integer>`((new_data:MemoryAddress), `clone <:Reference>`((i:Integer)))) + (value:ReferenceMut) = (*`<:Reference>> [ <:Integer> ]`((array:ReferenceMut>), `clone <:Reference>`((i:Integer))):Integer) + `destroy <:ReferenceMut>`((i:Integer)) + (i:Integer) = `<:Integer> + <:Integer>`(`clone <:Reference>`((i:Integer)), 1) - free (*array:Array).data + `free <:MemoryAddress>`((*array:Array).data) (*array:Array).data = (new_data:MemoryAddress) - destroy (*array:Array).capacity - (*array:Array).capacity = clone (new_capacity:Integer) - destroy (new_capacity:Integer) - destroy (i:Integer) + `destroy <:ReferenceMut>`((*array:Array).capacity) + (*array:Array).capacity = `clone <:Reference>`((new_capacity:Integer)) + `destroy <:ReferenceMut>`((new_capacity:Integer)) + `destroy <:ReferenceMut>`((i:Integer)) - let value: ReferenceMut = (Type:Type) at (*array:Array).data + clone (*array:Array).size + let value: ReferenceMut = `<:Type> at <:MemoryAddress>`((Type:Type), `<:MemoryAddress> + <:Integer>`((*array:Array).data, `clone <:Reference>`((*array:Array).size))) (value:ReferenceMut) = (x:Integer) - destroy (*array:Array).size - (*array:Array).size = clone (*array:Array).size + 1 + `destroy <:ReferenceMut>`((*array:Array).size) + (*array:Array).size = `<:Integer> + <:Integer>`(`clone <:Reference>`((*array:Array).size), 1) fn String from >> -> String: let mut str: String = "[" - if (array:Reference>) is not empty: - (&str:ReferenceMut) += String from (*(array:Reference>) [ 0 ]:Integer) + if `<:Reference>> is not empty`((array:Reference>)): + `<:ReferenceMut> += <:String>`((&str:ReferenceMut), `String from <:Integer>`((*`<:Reference>> [ <:Integer> ]`((array:Reference>), 0):Integer))) let mut i: Integer = 1 - while clone (i:Integer) < clone (*array:Array).size: - (&str:ReferenceMut) += ", " - (&str:ReferenceMut) += String from (*(array:Reference>) [ clone (i:Integer) ]:Integer) - (&i:ReferenceMut) += 1 + while `<:Integer> < <:Integer>`(`clone <:Reference>`((i:Integer)), `clone <:Reference>`((*array:Array).size)): + `<:ReferenceMut> += <:String>`((&str:ReferenceMut), ", ") + `<:ReferenceMut> += <:String>`((&str:ReferenceMut), `String from <:Integer>`((*`<:Reference>> [ <:Integer> ]`((array:Reference>), `clone <:Reference>`((i:Integer))):Integer))) + `<:ReferenceMut> += <:Integer>`((&i:ReferenceMut), 1) - destroy (i:Integer) + `destroy <:ReferenceMut>`((i:Integer)) - (&str:ReferenceMut) += "]" - let $tmp@1462: String = clone (str:String) - destroy (str:String) + `<:ReferenceMut> += <:String>`((&str:ReferenceMut), "]") + let $tmp@1462: String = `clone <:Reference>`((str:String)) + `destroy <:ReferenceMut>`((str:String)) return ($tmp@1462:String) fn println > -> None: - let $tmp@176: None = println String from (x:Array) + let $tmp@176: None = `println <:String>`(`String from <:Reference>>`((x:Array))) return ($tmp@176:None) fn >> is not empty -> Bool: - let $tmp@1194: Bool = clone (*array:Array).size > 0 + let $tmp@1194: Bool = `<:Integer> > <:Integer>`(`clone <:Reference>`((*array:Array).size), 0) return ($tmp@1194:Bool) fn size of > -> Integer: - let $tmp@4399: Integer = clone (ty:Type).size + let $tmp@4399: Integer = `clone <:Reference>`((ty:Type).size) return ($tmp@4399:Integer) @@ -176,9 +176,9 @@ fn > at -> ReferenceMut > at -> ReferenceMut fn >> [ ] -> Reference: - let address: MemoryAddress = (*array:Array).data + clone (i:Integer) * size of (Type:Type) - let mut $tmp@467: ReferenceMut = (Type:Type) at (address:MemoryAddress) - destroy (i:Integer) + let address: MemoryAddress = `<:MemoryAddress> + <:Integer>`((*array:Array).data, `<:Integer> * <:Integer>`(`clone <:Reference>`((i:Integer)), `size of <:Type>`((Type:Type)))) + let mut $tmp@467: ReferenceMut = `<:Type> at <:MemoryAddress>`((Type:Type), (address:MemoryAddress)) + `destroy <:ReferenceMut>`((i:Integer)) return ($tmp@467:ReferenceMut) @@ -186,18 +186,18 @@ fn >> [ ] -> Reference -> String fn println -> None: - let $tmp@176: None = println String from (x:Integer) + let $tmp@176: None = `println <:String>`(`String from <:Integer>`((x:Integer))) return ($tmp@176:None) fn >> exists -> Bool: - let $tmp@1755: Bool = clone (*it:Iterator).index < clone (*(*it:Iterator).array:Array).size + let $tmp@1755: Bool = `<:Integer> < <:Integer>`(`clone <:Reference>`((*it:Iterator).index), `clone <:Reference>`((*(*it:Iterator).array:Array).size)) return ($tmp@1755:Bool) fn size of > -> Integer: - let $tmp@4399: Integer = clone (ty:Type).size + let $tmp@4399: Integer = `clone <:Reference>`((ty:Type).size) return ($tmp@4399:Integer) @@ -205,12 +205,12 @@ fn size of > -> Integer: fn > at -> ReferenceMut fn >> [ ] -> Reference: - let address: MemoryAddress = (*array:Array).data + (i:Integer) * size of (Type:Type) - return (Type:Type) at (address:MemoryAddress) + let address: MemoryAddress = `<:MemoryAddress> + <:Integer>`((*array:Array).data, `<:Integer> * <:Integer>`((i:Integer), `size of <:Type>`((Type:Type)))) + return `<:Type> at <:MemoryAddress>`((Type:Type), (address:MemoryAddress)) fn size of > -> Integer: - let $tmp@4399: Integer = clone (ty:Type).size + let $tmp@4399: Integer = `clone <:Reference>`((ty:Type).size) return ($tmp@4399:Integer) @@ -218,12 +218,12 @@ fn size of > -> Integer: fn > at -> ReferenceMut fn >> [ ] -> Reference: - let address: MemoryAddress = (*array:Array).data + (i:Integer) * size of (Type:Type) - return (Type:Type) at (address:MemoryAddress) + let address: MemoryAddress = `<:MemoryAddress> + <:Integer>`((*array:Array).data, `<:Integer> * <:Integer>`((i:Integer), `size of <:Type>`((Type:Type)))) + return `<:Type> at <:MemoryAddress>`((Type:Type), (address:MemoryAddress)) fn value from >> -> Reference: - let $tmp@1886: Reference = (*it:Iterator).array [ clone (*it:Iterator).index ] + let $tmp@1886: Reference = `<:Reference>> [ <:Integer> ]`((*it:Iterator).array, `clone <:Reference>`((*it:Iterator).index)) return ($tmp@1886:Reference) @@ -231,10 +231,10 @@ fn value from >> -> Reference: fn String from <$arg0: Integer> -> String fn println -> None: - let $tmp@176: None = println String from (x:Integer) + let $tmp@176: None = `println <:String>`(`String from <:Integer>`((x:Integer))) return ($tmp@176:None) fn advance >> -> None: - (&(*it:Iterator).index:ReferenceMut) += 1 + `<:ReferenceMut> += <:Integer>`((&(*it:Iterator).index:ReferenceMut), 1) diff --git a/src/tests/snapshots/ppl__tests__clone.hir.snap b/src/tests/snapshots/ppl__tests__clone.hir.snap index 5043aa0f..19ccd336 100644 --- a/src/tests/snapshots/ppl__tests__clone.hir.snap +++ b/src/tests/snapshots/ppl__tests__clone.hir.snap @@ -3,15 +3,15 @@ source: src/tests/mod.rs expression: hir --- let mut x: Integer = 1 -let mut y: Integer = clone (x:Integer) -println clone (x:Integer) -println clone (y:Integer) -destroy (y:Integer) +let mut y: Integer = `clone <:Reference>`((x:Integer)) +`println <:Integer>`(`clone <:Reference>`((x:Integer))) +`println <:Integer>`(`clone <:Reference>`((y:Integer))) +`destroy <:ReferenceMut>`((y:Integer)) (y:Integer) = 2 -println clone (x:Integer) -println clone (y:Integer) -destroy (x:Integer) -destroy (y:Integer) +`println <:Integer>`(`clone <:Reference>`((x:Integer))) +`println <:Integer>`(`clone <:Reference>`((y:Integer))) +`destroy <:ReferenceMut>`((x:Integer)) +`destroy <:ReferenceMut>`((y:Integer)) ==MONOMORPHIZED== @@ -20,7 +20,7 @@ destroy (y:Integer) fn String from <$arg0: Integer> -> String fn println -> None: - let $tmp@176: None = println String from (x:Integer) + let $tmp@176: None = `println <:String>`(`String from <:Integer>`((x:Integer))) return ($tmp@176:None) @@ -29,7 +29,7 @@ fn println -> None: fn String from <$arg0: Integer> -> String fn println -> None: - let $tmp@176: None = println String from (x:Integer) + let $tmp@176: None = `println <:String>`(`String from <:Integer>`((x:Integer))) return ($tmp@176:None) @@ -38,7 +38,7 @@ fn println -> None: fn String from <$arg0: Integer> -> String fn println -> None: - let $tmp@176: None = println String from (x:Integer) + let $tmp@176: None = `println <:String>`(`String from <:Integer>`((x:Integer))) return ($tmp@176:None) @@ -47,5 +47,5 @@ fn println -> None: fn String from <$arg0: Integer> -> String fn println -> None: - let $tmp@176: None = println String from (x:Integer) + let $tmp@176: None = `println <:String>`(`String from <:Integer>`((x:Integer))) return ($tmp@176:None) diff --git a/src/tests/snapshots/ppl__tests__common_functions.hir.snap b/src/tests/snapshots/ppl__tests__common_functions.hir.snap index e82541bf..b624e7c3 100644 --- a/src/tests/snapshots/ppl__tests__common_functions.hir.snap +++ b/src/tests/snapshots/ppl__tests__common_functions.hir.snap @@ -3,7 +3,7 @@ source: src/tests/mod.rs expression: hir --- fn foo -> None: - let $tmp@10: None = println "foo" + let $tmp@10: None = `println <:String>`("foo") return ($tmp@10:None) -foo +`foo`() diff --git a/src/tests/snapshots/ppl__tests__deps.hir.snap b/src/tests/snapshots/ppl__tests__deps.hir.snap index 2ec2da14..a5e52ae3 100644 --- a/src/tests/snapshots/ppl__tests__deps.hir.snap +++ b/src/tests/snapshots/ppl__tests__deps.hir.snap @@ -3,4 +3,4 @@ source: src/tests/mod.rs expression: hir --- use helper.* -say hello +`say hello`() diff --git a/src/tests/snapshots/ppl__tests__deref_member_ref.hir.snap b/src/tests/snapshots/ppl__tests__deref_member_ref.hir.snap index c482613b..61818549 100644 --- a/src/tests/snapshots/ppl__tests__deref_member_ref.hir.snap +++ b/src/tests/snapshots/ppl__tests__deref_member_ref.hir.snap @@ -8,11 +8,11 @@ type Point: fn x of > -> Integer: - let $tmp@61: Integer = clone (*p:Point).x + let $tmp@61: Integer = `clone <:Reference>`((*p:Point).x) return ($tmp@61:Integer) let $tmp@80: Point = Point { x: 1, y: 2 } -println x of (&$tmp@80:Reference) +`println <:Integer>`(`x of <:Reference>`((&$tmp@80:Reference))) ==MONOMORPHIZED== @@ -21,5 +21,5 @@ println x of (&$tmp@80:Reference) fn String from <$arg0: Integer> -> String fn println -> None: - let $tmp@176: None = println String from (x:Integer) + let $tmp@176: None = `println <:String>`(`String from <:Integer>`((x:Integer))) return ($tmp@176:None) diff --git a/src/tests/snapshots/ppl__tests__destructor.hir.snap b/src/tests/snapshots/ppl__tests__destructor.hir.snap index 5d610b1f..ac368ce7 100644 --- a/src/tests/snapshots/ppl__tests__destructor.hir.snap +++ b/src/tests/snapshots/ppl__tests__destructor.hir.snap @@ -5,11 +5,11 @@ expression: hir type DestructibleClass fn destroy <$arg0: ReferenceMut> -> None: - let $tmp@64: None = println "destructor" + let $tmp@64: None = `println <:String>`("destructor") return ($tmp@64:None) let mut x: DestructibleClass = DestructibleClass { } -destroy (x:DestructibleClass) +`destroy <:ReferenceMut>`((x:DestructibleClass)) (x:DestructibleClass) = DestructibleClass { } -println "done" -destroy (x:DestructibleClass) +`println <:String>`("done") +`destroy <:ReferenceMut>`((x:DestructibleClass)) diff --git a/src/tests/snapshots/ppl__tests__empty_constructor.hir.snap b/src/tests/snapshots/ppl__tests__empty_constructor.hir.snap index efbd508f..dcf5fbd5 100644 --- a/src/tests/snapshots/ppl__tests__empty_constructor.hir.snap +++ b/src/tests/snapshots/ppl__tests__empty_constructor.hir.snap @@ -4,7 +4,7 @@ expression: hir --- type A let a: A = A { } -println type of (a:A) +`println <:Type>`(`type of <:A>`((a:A))) ==MONOMORPHIZED== @@ -15,10 +15,10 @@ fn type of <$arg0: A> -> Type: fn String from > -> String: - let $tmp@4331: String = clone (ty:Type).name + let $tmp@4331: String = `clone <:Reference>`((ty:Type).name) return ($tmp@4331:String) fn println > -> None: - let $tmp@176: None = println String from (x:Type) + let $tmp@176: None = `println <:String>`(`String from <:Type>`((x:Type))) return ($tmp@176:None) diff --git a/src/tests/snapshots/ppl__tests__escaped_id.hir.snap b/src/tests/snapshots/ppl__tests__escaped_id.hir.snap index f27f7789..42f3ca8b 100644 --- a/src/tests/snapshots/ppl__tests__escaped_id.hir.snap +++ b/src/tests/snapshots/ppl__tests__escaped_id.hir.snap @@ -3,6 +3,6 @@ source: src/tests/mod.rs expression: hir --- let mut if: Integer = 1 -destroy (if:Integer) +`destroy <:ReferenceMut>`((if:Integer)) (if:Integer) = 2 -destroy (if:Integer) +`destroy <:ReferenceMut>`((if:Integer)) diff --git a/src/tests/snapshots/ppl__tests__generics.hir.snap b/src/tests/snapshots/ppl__tests__generics.hir.snap index 855cb9e1..57dfa044 100644 --- a/src/tests/snapshots/ppl__tests__generics.hir.snap +++ b/src/tests/snapshots/ppl__tests__generics.hir.snap @@ -11,17 +11,17 @@ fn x of > -> T: let $tmp@53: T = (p:Point).x return ($tmp@53:T) -let x: Integer = x of Point { x: 0, y: 0 } +let x: Integer = `x of <:Point>`(Point { x: 0, y: 0 }) fn id -> T: let $tmp@127: T = (x:T) return ($tmp@127:T) -println clone (x:Integer) == 0 -println id 1 == 1 -println id "hello" -id Point { x: 0, y: 0 } -destroy (x:Integer) +`println <:Bool>`(`<:Integer> == <:Integer>`(`clone <:Reference>`((x:Integer)), 0)) +`println <:Bool>`(`<:Integer> == <:Integer>`(`id <:Integer>`(1), 1)) +`println <:String>`(`id <:String>`("hello")) +`id <:Point>`(Point { x: 0, y: 0 }) +`destroy <:ReferenceMut>`((x:Integer)) ==MONOMORPHIZED== @@ -40,7 +40,7 @@ fn String from -> String: fn println -> None: - let $tmp@176: None = println String from (x:Bool) + let $tmp@176: None = `println <:String>`(`String from <:Bool>`((x:Bool))) return ($tmp@176:None) @@ -59,7 +59,7 @@ fn String from -> String: fn println -> None: - let $tmp@176: None = println String from (x:Bool) + let $tmp@176: None = `println <:String>`(`String from <:Bool>`((x:Bool))) return ($tmp@176:None) diff --git a/src/tests/snapshots/ppl__tests__import_all.hir.snap b/src/tests/snapshots/ppl__tests__import_all.hir.snap index f9beca1f..671368f3 100644 --- a/src/tests/snapshots/ppl__tests__import_all.hir.snap +++ b/src/tests/snapshots/ppl__tests__import_all.hir.snap @@ -3,8 +3,8 @@ source: src/tests/mod.rs expression: hir --- use utils.* -println do nothing -println do something +`println <:None>`(`do nothing`()) +`println <:Integer>`(`do something`()) ==MONOMORPHIZED== @@ -15,7 +15,7 @@ fn String from <$arg0: None> -> String: fn println -> None: - let $tmp@176: None = println String from (x:None) + let $tmp@176: None = `println <:String>`(`String from <:None>`((x:None))) return ($tmp@176:None) @@ -24,5 +24,5 @@ fn println -> None: fn String from <$arg0: Integer> -> String fn println -> None: - let $tmp@176: None = println String from (x:Integer) + let $tmp@176: None = `println <:String>`(`String from <:Integer>`((x:Integer))) return ($tmp@176:None) diff --git a/src/tests/snapshots/ppl__tests__integer.hir.snap b/src/tests/snapshots/ppl__tests__integer.hir.snap index b75cde3c..86b575bc 100644 --- a/src/tests/snapshots/ppl__tests__integer.hir.snap +++ b/src/tests/snapshots/ppl__tests__integer.hir.snap @@ -2,14 +2,14 @@ source: src/tests/mod.rs expression: hir --- -println 0 -println + 1 -println - 2 -println 2 + 1 -println 2 ^ 2 -println 5 - 0 -println 2 * 3 -println 14 / 2 +`println <:Integer>`(0) +`println <:Integer>`(`+ <:Integer>`(1)) +`println <:Integer>`(`- <:Integer>`(2)) +`println <:Integer>`(`<:Integer> + <:Integer>`(2, 1)) +`println <:Integer>`(`<:Integer> ^ <:Integer>`(2, 2)) +`println <:Integer>`(`<:Integer> - <:Integer>`(5, 0)) +`println <:Integer>`(`<:Integer> * <:Integer>`(2, 3)) +`println <:Rational>`(`<:Integer> / <:Integer>`(14, 2)) ==MONOMORPHIZED== @@ -18,7 +18,7 @@ println 14 / 2 fn String from <$arg0: Integer> -> String fn println -> None: - let $tmp@176: None = println String from (x:Integer) + let $tmp@176: None = `println <:String>`(`String from <:Integer>`((x:Integer))) return ($tmp@176:None) @@ -27,7 +27,7 @@ fn println -> None: fn String from <$arg0: Integer> -> String fn println -> None: - let $tmp@176: None = println String from (x:Integer) + let $tmp@176: None = `println <:String>`(`String from <:Integer>`((x:Integer))) return ($tmp@176:None) @@ -36,7 +36,7 @@ fn println -> None: fn String from <$arg0: Integer> -> String fn println -> None: - let $tmp@176: None = println String from (x:Integer) + let $tmp@176: None = `println <:String>`(`String from <:Integer>`((x:Integer))) return ($tmp@176:None) @@ -45,7 +45,7 @@ fn println -> None: fn String from <$arg0: Integer> -> String fn println -> None: - let $tmp@176: None = println String from (x:Integer) + let $tmp@176: None = `println <:String>`(`String from <:Integer>`((x:Integer))) return ($tmp@176:None) @@ -54,7 +54,7 @@ fn println -> None: fn String from <$arg0: Integer> -> String fn println -> None: - let $tmp@176: None = println String from (x:Integer) + let $tmp@176: None = `println <:String>`(`String from <:Integer>`((x:Integer))) return ($tmp@176:None) @@ -63,7 +63,7 @@ fn println -> None: fn String from <$arg0: Integer> -> String fn println -> None: - let $tmp@176: None = println String from (x:Integer) + let $tmp@176: None = `println <:String>`(`String from <:Integer>`((x:Integer))) return ($tmp@176:None) @@ -72,7 +72,7 @@ fn println -> None: fn String from <$arg0: Integer> -> String fn println -> None: - let $tmp@176: None = println String from (x:Integer) + let $tmp@176: None = `println <:String>`(`String from <:Integer>`((x:Integer))) return ($tmp@176:None) @@ -81,5 +81,5 @@ fn println -> None: fn String from <$arg0: Rational> -> String fn println -> None: - let $tmp@176: None = println String from (x:Rational) + let $tmp@176: None = `println <:String>`(`String from <:Rational>`((x:Rational))) return ($tmp@176:None) diff --git a/src/tests/snapshots/ppl__tests__memory.hir.snap b/src/tests/snapshots/ppl__tests__memory.hir.snap index bc2661c6..cc8ead12 100644 --- a/src/tests/snapshots/ppl__tests__memory.hir.snap +++ b/src/tests/snapshots/ppl__tests__memory.hir.snap @@ -2,24 +2,24 @@ source: src/tests/mod.rs expression: hir --- -let address: MemoryAddress = allocate 1 (Type:Type) -let x: ReferenceMut = (Type:Type) at (address:MemoryAddress) +let address: MemoryAddress = `allocate <:Integer> <:Type>`(1, (Type:Type)) +let x: ReferenceMut = `<:Type> at <:MemoryAddress>`((Type:Type), (address:MemoryAddress)) (x:ReferenceMut) = 0 -println clone (*x:Integer) +`println <:Integer>`(`clone <:Reference>`((*x:Integer))) (x:ReferenceMut) = 1 -println clone (*x:Integer) +`println <:Integer>`(`clone <:Reference>`((*x:Integer))) ==MONOMORPHIZED== fn size of > -> Integer: - let $tmp@4399: Integer = clone (ty:Type).size + let $tmp@4399: Integer = `clone <:Reference>`((ty:Type).size) return ($tmp@4399:Integer) fn allocate <$arg1: Type> -> MemoryAddress: - let $tmp@760: MemoryAddress = allocate clone (n:Integer) * size of (Type:Type) bytes - destroy (n:Integer) + let $tmp@760: MemoryAddress = `allocate <:Integer> bytes`(`<:Integer> * <:Integer>`(`clone <:Reference>`((n:Integer)), `size of <:Type>`((Type:Type)))) + `destroy <:ReferenceMut>`((n:Integer)) return ($tmp@760:MemoryAddress) @@ -30,7 +30,7 @@ fn > at -> ReferenceMut -> String fn println -> None: - let $tmp@176: None = println String from (x:Integer) + let $tmp@176: None = `println <:String>`(`String from <:Integer>`((x:Integer))) return ($tmp@176:None) @@ -39,5 +39,5 @@ fn println -> None: fn String from <$arg0: Integer> -> String fn println -> None: - let $tmp@176: None = println String from (x:Integer) + let $tmp@176: None = `println <:String>`(`String from <:Integer>`((x:Integer))) return ($tmp@176:None) diff --git a/src/tests/snapshots/ppl__tests__monomorphize.hir.snap b/src/tests/snapshots/ppl__tests__monomorphize.hir.snap index fd99a505..64f0d96c 100644 --- a/src/tests/snapshots/ppl__tests__monomorphize.hir.snap +++ b/src/tests/snapshots/ppl__tests__monomorphize.hir.snap @@ -7,9 +7,9 @@ type Point: y: T let p: Point = Point { x: 1, y: 2 } -let x: Integer = clone (p:Point).x -println clone (x:Integer) == 1 -destroy (x:Integer) +let x: Integer = `clone <:Reference>`((p:Point).x) +`println <:Bool>`(`<:Integer> == <:Integer>`(`clone <:Reference>`((x:Integer)), 1)) +`destroy <:ReferenceMut>`((x:Integer)) ==MONOMORPHIZED== @@ -24,5 +24,5 @@ fn String from -> String: fn println -> None: - let $tmp@176: None = println String from (x:Bool) + let $tmp@176: None = `println <:String>`(`String from <:Bool>`((x:Bool))) return ($tmp@176:None) diff --git a/src/tests/snapshots/ppl__tests__monomorphize_predeclared.hir.snap b/src/tests/snapshots/ppl__tests__monomorphize_predeclared.hir.snap index ae465ec6..350fd2ee 100644 --- a/src/tests/snapshots/ppl__tests__monomorphize_predeclared.hir.snap +++ b/src/tests/snapshots/ppl__tests__monomorphize_predeclared.hir.snap @@ -3,16 +3,16 @@ source: src/tests/mod.rs expression: hir --- fn call predeclared -> None: - predeclared 1 + `predeclared <:Integer>`(1) fn predeclared -> None: - println "called predeclared" + `println <:String>`("called predeclared") -call predeclared +`call predeclared`() ==MONOMORPHIZED== fn predeclared -> None: - println "called predeclared" + `println <:String>`("called predeclared") diff --git a/src/tests/snapshots/ppl__tests__multifile.hir.snap b/src/tests/snapshots/ppl__tests__multifile.hir.snap index d2bbf02e..a13c4e07 100644 --- a/src/tests/snapshots/ppl__tests__multifile.hir.snap +++ b/src/tests/snapshots/ppl__tests__multifile.hir.snap @@ -3,4 +3,4 @@ source: src/tests/mod.rs expression: hir --- use greet.greet <:String> -greet "World" +`greet <:String>`("World") diff --git a/src/tests/snapshots/ppl__tests__plus_assign.hir.snap b/src/tests/snapshots/ppl__tests__plus_assign.hir.snap index 281390c3..f69eb49a 100644 --- a/src/tests/snapshots/ppl__tests__plus_assign.hir.snap +++ b/src/tests/snapshots/ppl__tests__plus_assign.hir.snap @@ -4,13 +4,13 @@ expression: hir --- let mut value: Rational = 0.0 let mut str: String = "Hello" -println clone (value:Rational) -(&value:ReferenceMut) += 1.0 -println clone (value:Rational) -(&str:ReferenceMut) += " World!" -println clone (str:String) -destroy (value:Rational) -destroy (str:String) +`println <:Rational>`(`clone <:Reference>`((value:Rational))) +`<:ReferenceMut> += <:Rational>`((&value:ReferenceMut), 1.0) +`println <:Rational>`(`clone <:Reference>`((value:Rational))) +`<:ReferenceMut> += <:String>`((&str:ReferenceMut), " World!") +`println <:String>`(`clone <:Reference>`((str:String))) +`destroy <:ReferenceMut>`((value:Rational)) +`destroy <:ReferenceMut>`((str:String)) ==MONOMORPHIZED== @@ -19,7 +19,7 @@ destroy (str:String) fn String from <$arg0: Rational> -> String fn println -> None: - let $tmp@176: None = println String from (x:Rational) + let $tmp@176: None = `println <:String>`(`String from <:Rational>`((x:Rational))) return ($tmp@176:None) @@ -28,14 +28,14 @@ fn println -> None: fn <$arg0: Rational> + <$arg1: Rational> -> Rational fn > += -> None: - (self:ReferenceMut) = (*self:Rational) + (other:Rational) + (self:ReferenceMut) = `<:Rational> + <:Rational>`((*self:Rational), (other:Rational)) @mangle_as("rational_as_string") fn String from <$arg0: Rational> -> String fn println -> None: - let $tmp@176: None = println String from (x:Rational) + let $tmp@176: None = `println <:String>`(`String from <:Rational>`((x:Rational))) return ($tmp@176:None) @@ -44,4 +44,4 @@ fn println -> None: fn <$arg0: String> + <$arg1: String> -> String fn > += -> None: - (self:ReferenceMut) = (*self:String) + (other:String) + (self:ReferenceMut) = `<:String> + <:String>`((*self:String), (other:String)) diff --git a/src/tests/snapshots/ppl__tests__predeclare_function.hir.snap b/src/tests/snapshots/ppl__tests__predeclare_function.hir.snap index 14859e7d..8975d73b 100644 --- a/src/tests/snapshots/ppl__tests__predeclare_function.hir.snap +++ b/src/tests/snapshots/ppl__tests__predeclare_function.hir.snap @@ -3,18 +3,18 @@ source: src/tests/mod.rs expression: hir --- fn plus two -> Integer: - let $tmp@28: Integer = sum clone (x:Integer) 2 - destroy (x:Integer) + let $tmp@28: Integer = `sum <:Integer> <:Integer>`(`clone <:Reference>`((x:Integer)), 2) + `destroy <:ReferenceMut>`((x:Integer)) return ($tmp@28:Integer) fn sum -> Integer: - let $tmp@84: Integer = clone (x:Integer) + clone (y:Integer) - destroy (x:Integer) - destroy (y:Integer) + let $tmp@84: Integer = `<:Integer> + <:Integer>`(`clone <:Reference>`((x:Integer)), `clone <:Reference>`((y:Integer))) + `destroy <:ReferenceMut>`((x:Integer)) + `destroy <:ReferenceMut>`((y:Integer)) return ($tmp@84:Integer) -println 2 plus two +`println <:Integer>`(`<:Integer> plus two`(2)) ==MONOMORPHIZED== @@ -23,5 +23,5 @@ println 2 plus two fn String from <$arg0: Integer> -> String fn println -> None: - let $tmp@176: None = println String from (x:Integer) + let $tmp@176: None = `println <:String>`(`String from <:Integer>`((x:Integer))) return ($tmp@176:None) diff --git a/src/tests/snapshots/ppl__tests__predeclare_vars.hir.snap b/src/tests/snapshots/ppl__tests__predeclare_vars.hir.snap index 64ac8338..ca88be84 100644 --- a/src/tests/snapshots/ppl__tests__predeclare_vars.hir.snap +++ b/src/tests/snapshots/ppl__tests__predeclare_vars.hir.snap @@ -5,18 +5,18 @@ expression: hir let x: Integer = 1 fn get x -> Integer: - let $tmp@22: Integer = clone (x:Integer) + let $tmp@22: Integer = `clone <:Reference>`((x:Integer)) return ($tmp@22:Integer) -let y: Integer = get x +let y: Integer = `get x`() fn get y -> Integer: - let $tmp@51: Integer = clone (y:Integer) + let $tmp@51: Integer = `clone <:Reference>`((y:Integer)) return ($tmp@51:Integer) -println clone (y:Integer) -destroy (x:Integer) -destroy (y:Integer) +`println <:Integer>`(`clone <:Reference>`((y:Integer))) +`destroy <:ReferenceMut>`((x:Integer)) +`destroy <:ReferenceMut>`((y:Integer)) ==MONOMORPHIZED== @@ -25,5 +25,5 @@ destroy (y:Integer) fn String from <$arg0: Integer> -> String fn println -> None: - let $tmp@176: None = println String from (x:Integer) + let $tmp@176: None = `println <:String>`(`String from <:Integer>`((x:Integer))) return ($tmp@176:None) diff --git a/src/tests/snapshots/ppl__tests__rational.hir.snap b/src/tests/snapshots/ppl__tests__rational.hir.snap index e144ca3c..6a6d13e5 100644 --- a/src/tests/snapshots/ppl__tests__rational.hir.snap +++ b/src/tests/snapshots/ppl__tests__rational.hir.snap @@ -2,21 +2,21 @@ source: src/tests/mod.rs expression: hir --- -println 0.0 -println + 1.0 -println - 2.0 -println 1.0 + 2.0 -println 5.0 - 1.0 -println 2.5 * 2.0 -println 9.0 / 3 / 2 -println 0.0 == 0.0 -println 1.0 != 0.0 -println 0.0 < 1.0 -println 1.0 > 0.0 -println 0.0 <= 0.0 -println 0.0 <= 1.0 -println 0.0 >= 0.0 -println 1.0 >= 0.0 +`println <:Rational>`(0.0) +`println <:Rational>`(`+ <:Rational>`(1.0)) +`println <:Rational>`(`- <:Rational>`(2.0)) +`println <:Rational>`(`<:Rational> + <:Rational>`(1.0, 2.0)) +`println <:Rational>`(`<:Rational> - <:Rational>`(5.0, 1.0)) +`println <:Rational>`(`<:Rational> * <:Rational>`(2.5, 2.0)) +`println <:Rational>`(`<:Rational> / <:Rational>`(9.0, `<:Integer> / <:Integer>`(3, 2))) +`println <:Bool>`(`<:Rational> == <:Rational>`(0.0, 0.0)) +`println <:Bool>`(`<:Rational> != <:Rational>`(1.0, 0.0)) +`println <:Bool>`(`<:Rational> < <:Rational>`(0.0, 1.0)) +`println <:Bool>`(`<:Rational> > <:Rational>`(1.0, 0.0)) +`println <:Bool>`(`<:Rational> <= <:Rational>`(0.0, 0.0)) +`println <:Bool>`(`<:Rational> <= <:Rational>`(0.0, 1.0)) +`println <:Bool>`(`<:Rational> >= <:Rational>`(0.0, 0.0)) +`println <:Bool>`(`<:Rational> >= <:Rational>`(1.0, 0.0)) ==MONOMORPHIZED== @@ -25,7 +25,7 @@ println 1.0 >= 0.0 fn String from <$arg0: Rational> -> String fn println -> None: - let $tmp@176: None = println String from (x:Rational) + let $tmp@176: None = `println <:String>`(`String from <:Rational>`((x:Rational))) return ($tmp@176:None) @@ -34,7 +34,7 @@ fn println -> None: fn String from <$arg0: Rational> -> String fn println -> None: - let $tmp@176: None = println String from (x:Rational) + let $tmp@176: None = `println <:String>`(`String from <:Rational>`((x:Rational))) return ($tmp@176:None) @@ -43,7 +43,7 @@ fn println -> None: fn String from <$arg0: Rational> -> String fn println -> None: - let $tmp@176: None = println String from (x:Rational) + let $tmp@176: None = `println <:String>`(`String from <:Rational>`((x:Rational))) return ($tmp@176:None) @@ -52,7 +52,7 @@ fn println -> None: fn String from <$arg0: Rational> -> String fn println -> None: - let $tmp@176: None = println String from (x:Rational) + let $tmp@176: None = `println <:String>`(`String from <:Rational>`((x:Rational))) return ($tmp@176:None) @@ -61,7 +61,7 @@ fn println -> None: fn String from <$arg0: Rational> -> String fn println -> None: - let $tmp@176: None = println String from (x:Rational) + let $tmp@176: None = `println <:String>`(`String from <:Rational>`((x:Rational))) return ($tmp@176:None) @@ -70,7 +70,7 @@ fn println -> None: fn String from <$arg0: Rational> -> String fn println -> None: - let $tmp@176: None = println String from (x:Rational) + let $tmp@176: None = `println <:String>`(`String from <:Rational>`((x:Rational))) return ($tmp@176:None) @@ -79,7 +79,7 @@ fn println -> None: fn String from <$arg0: Rational> -> String fn println -> None: - let $tmp@176: None = println String from (x:Rational) + let $tmp@176: None = `println <:String>`(`String from <:Rational>`((x:Rational))) return ($tmp@176:None) @@ -94,7 +94,7 @@ fn String from -> String: fn println -> None: - let $tmp@176: None = println String from (x:Bool) + let $tmp@176: None = `println <:String>`(`String from <:Bool>`((x:Bool))) return ($tmp@176:None) @@ -103,7 +103,7 @@ fn println -> None: fn <$arg0: Rational> == <$arg1: Rational> -> Bool fn != -> Bool: - let $tmp@776: Bool = not (x:Rational) == (y:Rational) + let $tmp@776: Bool = `not <:Bool>`(`<:Rational> == <:Rational>`((x:Rational), (y:Rational))) return ($tmp@776:Bool) @@ -118,7 +118,7 @@ fn String from -> String: fn println -> None: - let $tmp@176: None = println String from (x:Bool) + let $tmp@176: None = `println <:String>`(`String from <:Bool>`((x:Bool))) return ($tmp@176:None) @@ -133,7 +133,7 @@ fn String from -> String: fn println -> None: - let $tmp@176: None = println String from (x:Bool) + let $tmp@176: None = `println <:String>`(`String from <:Bool>`((x:Bool))) return ($tmp@176:None) @@ -142,7 +142,7 @@ fn println -> None: fn <$arg0: Rational> < <$arg1: Rational> -> Bool fn > -> Bool: - let $tmp@1032: Bool = (y:Rational) < (x:Rational) + let $tmp@1032: Bool = `<:Rational> < <:Rational>`((y:Rational), (x:Rational)) return ($tmp@1032:Bool) @@ -157,7 +157,7 @@ fn String from -> String: fn println -> None: - let $tmp@176: None = println String from (x:Bool) + let $tmp@176: None = `println <:String>`(`String from <:Bool>`((x:Bool))) return ($tmp@176:None) @@ -166,13 +166,13 @@ fn println -> None: fn <$arg0: Rational> < <$arg1: Rational> -> Bool fn > -> Bool: - let $tmp@1032: Bool = (y:Rational) < (x:Rational) + let $tmp@1032: Bool = `<:Rational> < <:Rational>`((y:Rational), (x:Rational)) return ($tmp@1032:Bool) fn <= -> Bool: - let $tmp@1068: Bool = not (x:Rational) > (y:Rational) + let $tmp@1068: Bool = `not <:Bool>`(`<:Rational> > <:Rational>`((x:Rational), (y:Rational))) return ($tmp@1068:Bool) @@ -187,7 +187,7 @@ fn String from -> String: fn println -> None: - let $tmp@176: None = println String from (x:Bool) + let $tmp@176: None = `println <:String>`(`String from <:Bool>`((x:Bool))) return ($tmp@176:None) @@ -196,13 +196,13 @@ fn println -> None: fn <$arg0: Rational> < <$arg1: Rational> -> Bool fn > -> Bool: - let $tmp@1032: Bool = (y:Rational) < (x:Rational) + let $tmp@1032: Bool = `<:Rational> < <:Rational>`((y:Rational), (x:Rational)) return ($tmp@1032:Bool) fn <= -> Bool: - let $tmp@1068: Bool = not (x:Rational) > (y:Rational) + let $tmp@1068: Bool = `not <:Bool>`(`<:Rational> > <:Rational>`((x:Rational), (y:Rational))) return ($tmp@1068:Bool) @@ -217,7 +217,7 @@ fn String from -> String: fn println -> None: - let $tmp@176: None = println String from (x:Bool) + let $tmp@176: None = `println <:String>`(`String from <:Bool>`((x:Bool))) return ($tmp@176:None) @@ -226,7 +226,7 @@ fn println -> None: fn <$arg0: Rational> < <$arg1: Rational> -> Bool fn >= -> Bool: - let $tmp@1110: Bool = not (x:Rational) < (y:Rational) + let $tmp@1110: Bool = `not <:Bool>`(`<:Rational> < <:Rational>`((x:Rational), (y:Rational))) return ($tmp@1110:Bool) @@ -241,7 +241,7 @@ fn String from -> String: fn println -> None: - let $tmp@176: None = println String from (x:Bool) + let $tmp@176: None = `println <:String>`(`String from <:Bool>`((x:Bool))) return ($tmp@176:None) @@ -250,7 +250,7 @@ fn println -> None: fn <$arg0: Rational> < <$arg1: Rational> -> Bool fn >= -> Bool: - let $tmp@1110: Bool = not (x:Rational) < (y:Rational) + let $tmp@1110: Bool = `not <:Bool>`(`<:Rational> < <:Rational>`((x:Rational), (y:Rational))) return ($tmp@1110:Bool) @@ -265,5 +265,5 @@ fn String from -> String: fn println -> None: - let $tmp@176: None = println String from (x:Bool) + let $tmp@176: None = `println <:String>`(`String from <:Bool>`((x:Bool))) return ($tmp@176:None) diff --git a/src/tests/snapshots/ppl__tests__reference_mut.hir.snap b/src/tests/snapshots/ppl__tests__reference_mut.hir.snap index 3e484d9c..c57e75c7 100644 --- a/src/tests/snapshots/ppl__tests__reference_mut.hir.snap +++ b/src/tests/snapshots/ppl__tests__reference_mut.hir.snap @@ -3,12 +3,12 @@ source: src/tests/mod.rs expression: hir --- let mut x: Integer = 1 -let y: ReferenceMut = reference to mutable (&x:ReferenceMut) -println clone (*y:Integer) +let y: ReferenceMut = `reference to mutable <:ReferenceMut>`((&x:ReferenceMut)) +`println <:Integer>`(`clone <:Reference>`((*y:Integer))) (y:ReferenceMut) = 2 -println clone (*y:Integer) -println clone (x:Integer) -destroy (x:Integer) +`println <:Integer>`(`clone <:Reference>`((*y:Integer))) +`println <:Integer>`(`clone <:Reference>`((x:Integer))) +`destroy <:ReferenceMut>`((x:Integer)) ==MONOMORPHIZED== @@ -22,7 +22,7 @@ fn reference to mutable > -> ReferenceMut -> String fn println -> None: - let $tmp@176: None = println String from (x:Integer) + let $tmp@176: None = `println <:String>`(`String from <:Integer>`((x:Integer))) return ($tmp@176:None) @@ -31,7 +31,7 @@ fn println -> None: fn String from <$arg0: Integer> -> String fn println -> None: - let $tmp@176: None = println String from (x:Integer) + let $tmp@176: None = `println <:String>`(`String from <:Integer>`((x:Integer))) return ($tmp@176:None) @@ -40,5 +40,5 @@ fn println -> None: fn String from <$arg0: Integer> -> String fn println -> None: - let $tmp@176: None = println String from (x:Integer) + let $tmp@176: None = `println <:String>`(`String from <:Integer>`((x:Integer))) return ($tmp@176:None) diff --git a/src/tests/snapshots/ppl__tests__reference_to_literal.hir.snap b/src/tests/snapshots/ppl__tests__reference_to_literal.hir.snap index a5473d94..63099730 100644 --- a/src/tests/snapshots/ppl__tests__reference_to_literal.hir.snap +++ b/src/tests/snapshots/ppl__tests__reference_to_literal.hir.snap @@ -3,12 +3,12 @@ source: src/tests/mod.rs expression: hir --- fn foo > -> None: - let $tmp@24: None = println clone (*x:Integer) + let $tmp@24: None = `println <:Integer>`(`clone <:Reference>`((*x:Integer))) return ($tmp@24:None) let $tmp@39: Integer = 42 -foo (&$tmp@39:Reference) -destroy ($tmp@39:Integer) +`foo <:Reference>`((&$tmp@39:Reference)) +`destroy <:ReferenceMut>`(($tmp@39:Integer)) ==MONOMORPHIZED== @@ -17,5 +17,5 @@ destroy ($tmp@39:Integer) fn String from <$arg0: Integer> -> String fn println -> None: - let $tmp@176: None = println String from (x:Integer) + let $tmp@176: None = `println <:String>`(`String from <:Integer>`((x:Integer))) return ($tmp@176:None) diff --git a/src/tests/snapshots/ppl__tests__reference_to_none.hir.snap b/src/tests/snapshots/ppl__tests__reference_to_none.hir.snap index 6d7364c1..c393076f 100644 --- a/src/tests/snapshots/ppl__tests__reference_to_none.hir.snap +++ b/src/tests/snapshots/ppl__tests__reference_to_none.hir.snap @@ -3,8 +3,8 @@ source: src/tests/mod.rs expression: hir --- fn foo <$arg0: Reference> -> None: - let $tmp@19: None = println "foo" + let $tmp@19: None = `println <:String>`("foo") return ($tmp@19:None) let x: None = none -foo (&x:Reference) +`foo <:Reference>`((&x:Reference)) diff --git a/src/tests/snapshots/ppl__tests__references.hir.snap b/src/tests/snapshots/ppl__tests__references.hir.snap index 8fa3febb..ffe0e256 100644 --- a/src/tests/snapshots/ppl__tests__references.hir.snap +++ b/src/tests/snapshots/ppl__tests__references.hir.snap @@ -2,21 +2,21 @@ source: src/tests/mod.rs expression: hir --- -let n: Integer = size of (Type:Type) -let address: MemoryAddress = allocate clone (n:Integer) bytes -let value: ReferenceMut = (Type:Type) at (address:MemoryAddress) -(value:ReferenceMut) = 0 as I32 -println (*value:I32) -(value:ReferenceMut) = 1 as I32 -println (*value:I32) -free (address:MemoryAddress) -destroy (n:Integer) +let n: Integer = `size of <:Type>`((Type:Type)) +let address: MemoryAddress = `allocate <:Integer> bytes`(`clone <:Reference>`((n:Integer))) +let value: ReferenceMut = `<:Type> at <:MemoryAddress>`((Type:Type), (address:MemoryAddress)) +(value:ReferenceMut) = `<:Integer> as I32`(0) +`println <:I32>`((*value:I32)) +(value:ReferenceMut) = `<:Integer> as I32`(1) +`println <:I32>`((*value:I32)) +`free <:MemoryAddress>`((address:MemoryAddress)) +`destroy <:ReferenceMut>`((n:Integer)) ==MONOMORPHIZED== fn size of > -> Integer: - let $tmp@4399: Integer = clone (ty:Type).size + let $tmp@4399: Integer = `clone <:Reference>`((ty:Type).size) return ($tmp@4399:Integer) @@ -27,7 +27,7 @@ fn > at -> ReferenceMut fn String from <$arg0: I32> -> String fn println -> None: - let $tmp@176: None = println String from (x:I32) + let $tmp@176: None = `println <:String>`(`String from <:I32>`((x:I32))) return ($tmp@176:None) @@ -36,5 +36,5 @@ fn println -> None: fn String from <$arg0: I32> -> String fn println -> None: - let $tmp@176: None = println String from (x:I32) + let $tmp@176: None = `println <:String>`(`String from <:I32>`((x:I32))) return ($tmp@176:None) diff --git a/src/tests/snapshots/ppl__tests__star.hir.snap b/src/tests/snapshots/ppl__tests__star.hir.snap index ce7f84bb..0a6bed5b 100644 --- a/src/tests/snapshots/ppl__tests__star.hir.snap +++ b/src/tests/snapshots/ppl__tests__star.hir.snap @@ -2,7 +2,7 @@ source: src/tests/mod.rs expression: hir --- -println 2 + 2 * 2 +`println <:Integer>`(`<:Integer> + <:Integer>`(2, `<:Integer> * <:Integer>`(2, 2))) ==MONOMORPHIZED== @@ -11,5 +11,5 @@ println 2 + 2 * 2 fn String from <$arg0: Integer> -> String fn println -> None: - let $tmp@176: None = println String from (x:Integer) + let $tmp@176: None = `println <:String>`(`String from <:Integer>`((x:Integer))) return ($tmp@176:None) diff --git a/src/tests/snapshots/ppl__tests__string.hir.snap b/src/tests/snapshots/ppl__tests__string.hir.snap index d5f1c6f0..e526e9ce 100644 --- a/src/tests/snapshots/ppl__tests__string.hir.snap +++ b/src/tests/snapshots/ppl__tests__string.hir.snap @@ -2,23 +2,23 @@ source: src/tests/mod.rs expression: hir --- -println "Hello" + " " + "World!" -println String from none -println String from false -println String from true -println String from 0 -println String from 0.0 -println String from (Type:Type) -println String from (Type>:Type>) +`println <:String>`(`<:String> + <:String>`(`<:String> + <:String>`("Hello", " "), "World!")) +`println <:String>`(`String from <:None>`(none)) +`println <:String>`(`String from <:Bool>`(false)) +`println <:String>`(`String from <:Bool>`(true)) +`println <:String>`(`String from <:Integer>`(0)) +`println <:String>`(`String from <:Rational>`(0.0)) +`println <:String>`(`String from <:Type>`((Type:Type))) +`println <:String>`(`String from <:Type>>`((Type>:Type>))) ==MONOMORPHIZED== fn String from > -> String: - let $tmp@4331: String = clone (ty:Type).name + let $tmp@4331: String = `clone <:Reference>`((ty:Type).name) return ($tmp@4331:String) fn> String from >> -> String: - let $tmp@4331: String = clone (ty:Type>).name + let $tmp@4331: String = `clone <:Reference>`((ty:Type>).name) return ($tmp@4331:String) diff --git a/src/tests/snapshots/ppl__tests__supertraits.hir.snap b/src/tests/snapshots/ppl__tests__supertraits.hir.snap index 6002e0be..1a89597c 100644 --- a/src/tests/snapshots/ppl__tests__supertraits.hir.snap +++ b/src/tests/snapshots/ppl__tests__supertraits.hir.snap @@ -12,32 +12,32 @@ trait FooBar: fn foo <$arg0: None> -> None: - let $tmp@99: None = print "foo" + let $tmp@99: None = `print <:String>`("foo") return ($tmp@99:None) fn bar <$arg0: None> -> None: - let $tmp@129: None = println "bar" + let $tmp@129: None = `println <:String>`("bar") return ($tmp@129:None) fn foobar -> None: - foo (x:T) - bar (x:T) + `foo <:T>`((x:T)) + `bar <:T>`((x:T)) -foobar none +`foobar <:None>`(none) ==MONOMORPHIZED== fn foo <$arg0: None> -> None: - return print "foo" + return `print <:String>`("foo") fn bar <$arg0: None> -> None: - return println "bar" + return `println <:String>`("bar") fn foobar -> None: - foo (x:None) - bar (x:None) + `foo <:None>`((x:None)) + `bar <:None>`((x:None)) diff --git a/src/tests/snapshots/ppl__tests__traits.hir.snap b/src/tests/snapshots/ppl__tests__traits.hir.snap index 7965f8aa..ba54f906 100644 --- a/src/tests/snapshots/ppl__tests__traits.hir.snap +++ b/src/tests/snapshots/ppl__tests__traits.hir.snap @@ -14,12 +14,12 @@ trait Test: fn required -> None: let $tmp@124: None = none - destroy (x:Integer) + `destroy <:ReferenceMut>`((x:Integer)) return ($tmp@124:None) -let res: Integer = default 1 -println clone (res:Integer) -destroy (res:Integer) +let res: Integer = `default <:Integer>`(1) +`println <:Integer>`(`clone <:Reference>`((res:Integer))) +`destroy <:ReferenceMut>`((res:Integer)) ==MONOMORPHIZED== @@ -32,5 +32,5 @@ fn default -> Integer: fn String from <$arg0: Integer> -> String fn println -> None: - let $tmp@176: None = println String from (x:Integer) + let $tmp@176: None = `println <:String>`(`String from <:Integer>`((x:Integer))) return ($tmp@176:None) diff --git a/src/tests/snapshots/ppl__tests__type_as_value.hir.snap b/src/tests/snapshots/ppl__tests__type_as_value.hir.snap index 08dc3bef..2ef713ee 100644 --- a/src/tests/snapshots/ppl__tests__type_as_value.hir.snap +++ b/src/tests/snapshots/ppl__tests__type_as_value.hir.snap @@ -3,20 +3,20 @@ source: src/tests/mod.rs expression: hir --- let x: Type = (Type:Type) -let y: Integer = clone (Type:Type).size -println size of (Type:Type) == 0 -println size of (Type:Type) == 1 -println String from (Type:Type) -println String from (Type>:Type>) -println clone (y:Integer) == size of (Type:Type) -println (Type:Type) -destroy (y:Integer) +let y: Integer = `clone <:Reference>`((Type:Type).size) +`println <:Bool>`(`<:Integer> == <:Integer>`(`size of <:Type>`((Type:Type)), 0)) +`println <:Bool>`(`<:Integer> == <:Integer>`(`size of <:Type>`((Type:Type)), 1)) +`println <:String>`(`String from <:Type>`((Type:Type))) +`println <:String>`(`String from <:Type>>`((Type>:Type>))) +`println <:Bool>`(`<:Integer> == <:Integer>`(`clone <:Reference>`((y:Integer)), `size of <:Type>`((Type:Type)))) +`println <:Type>`((Type:Type)) +`destroy <:ReferenceMut>`((y:Integer)) ==MONOMORPHIZED== fn size of > -> Integer: - let $tmp@4399: Integer = clone (ty:Type).size + let $tmp@4399: Integer = `clone <:Reference>`((ty:Type).size) return ($tmp@4399:Integer) @@ -30,13 +30,13 @@ fn String from -> String: fn println -> None: - let $tmp@176: None = println String from (x:Bool) + let $tmp@176: None = `println <:String>`(`String from <:Bool>`((x:Bool))) return ($tmp@176:None) fn size of > -> Integer: - let $tmp@4399: Integer = clone (ty:Type).size + let $tmp@4399: Integer = `clone <:Reference>`((ty:Type).size) return ($tmp@4399:Integer) @@ -50,23 +50,23 @@ fn String from -> String: fn println -> None: - let $tmp@176: None = println String from (x:Bool) + let $tmp@176: None = `println <:String>`(`String from <:Bool>`((x:Bool))) return ($tmp@176:None) fn String from > -> String: - let $tmp@4331: String = clone (ty:Type).name + let $tmp@4331: String = `clone <:Reference>`((ty:Type).name) return ($tmp@4331:String) fn> String from >> -> String: - let $tmp@4331: String = clone (ty:Type>).name + let $tmp@4331: String = `clone <:Reference>`((ty:Type>).name) return ($tmp@4331:String) fn size of > -> Integer: - let $tmp@4399: Integer = clone (ty:Type).size + let $tmp@4399: Integer = `clone <:Reference>`((ty:Type).size) return ($tmp@4399:Integer) @@ -80,16 +80,16 @@ fn String from -> String: fn println -> None: - let $tmp@176: None = println String from (x:Bool) + let $tmp@176: None = `println <:String>`(`String from <:Bool>`((x:Bool))) return ($tmp@176:None) fn String from > -> String: - let $tmp@4331: String = clone (ty:Type).name + let $tmp@4331: String = `clone <:Reference>`((ty:Type).name) return ($tmp@4331:String) fn println > -> None: - let $tmp@176: None = println String from (x:Type) + let $tmp@176: None = `println <:String>`(`String from <:Type>`((x:Type))) return ($tmp@176:None) diff --git a/src/tests/snapshots/ppl__tests__type_of.hir.snap b/src/tests/snapshots/ppl__tests__type_of.hir.snap index a0c89cc0..80949d24 100644 --- a/src/tests/snapshots/ppl__tests__type_of.hir.snap +++ b/src/tests/snapshots/ppl__tests__type_of.hir.snap @@ -2,8 +2,8 @@ source: src/tests/mod.rs expression: hir --- -let ty: Type = type of 1 -println (ty:Type) +let ty: Type = `type of <:Integer>`(1) +`println <:Type>`((ty:Type)) ==MONOMORPHIZED== @@ -14,10 +14,10 @@ fn type of <$arg0: Integer> -> Type: fn String from > -> String: - let $tmp@4331: String = clone (ty:Type).name + let $tmp@4331: String = `clone <:Reference>`((ty:Type).name) return ($tmp@4331:String) fn println > -> None: - let $tmp@176: None = println String from (x:Type) + let $tmp@176: None = `println <:String>`(`String from <:Type>`((x:Type))) return ($tmp@176:None)