Skip to content

Commit

Permalink
Have tests show the fix
Browse files Browse the repository at this point in the history
  • Loading branch information
lpil committed Apr 22, 2024
1 parent 9e59319 commit f1194fa
Show file tree
Hide file tree
Showing 5 changed files with 50 additions and 67 deletions.
63 changes: 12 additions & 51 deletions compiler-core/src/erlang/tests/consts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -119,58 +119,37 @@ fn pub_const_equal_to_record_with_nested_private_function_field() {
#[test]
fn use_unqualified_pub_const_equal_to_private_function() {
assert_erl!(
(
"package",
"mappers",
r#"
r#"
fn identity(a) {
a
}
pub const id = identity
"#
),
r#"
import mappers.{ id } as _
pub fn main() {
id
}
"#
);
}

#[test]
fn use_qualified_pub_const_equal_to_private_function() {
fn use_unqualified_pub_const_equal_to_record_with_private_function_field() {
assert_erl!(
(
"package",
"mappers",
r#"
r#"
fn identity(a) {
a
}
pub const id = identity
"#
),
r#"
import mappers
pub type Mapper(b) {
Mapper(fn(b) -> b)
}
pub fn main() {
mappers.id
}
pub const id_mapper = Mapper(identity)
"#
);
}

#[test]
fn use_unqualified_pub_const_equal_to_record_with_private_function_field() {
fn use_qualified_pub_const_equal_to_record_with_private_function_field() {
assert_erl!(
(
"package",
"mappers",
r#"
r#"
fn identity(a) {
a
}
Expand All @@ -181,24 +160,13 @@ fn use_unqualified_pub_const_equal_to_record_with_private_function_field() {
pub const id_mapper = Mapper(identity)
"#
),
r#"
import mappers.{ id_mapper } as _
pub fn main() {
id_mapper
}
"#
);
}

#[test]
fn use_qualified_pub_const_equal_to_record_with_private_function_field() {
fn use_private_in_internal() {
assert_erl!(
(
"package",
"mappers",
r#"
r#"
fn identity(a) {
a
}
Expand All @@ -207,15 +175,8 @@ fn use_qualified_pub_const_equal_to_record_with_private_function_field() {
Mapper(fn(b) -> b)
}
@internal
pub const id_mapper = Mapper(identity)
"#
),
r#"
import mappers
pub fn main() {
mappers.id_mapper
}
"#
);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
source: compiler-core/src/erlang/tests/consts.rs
assertion_line: 168
expression: "\n fn identity(a) {\n a\n }\n\n pub type Mapper(b) {\n Mapper(fn(b) -> b)\n }\n\n @internal\n pub const id_mapper = Mapper(identity)\n "
---
-module(my@mod).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).

-export([identity/1]).
-export_type([mapper/1]).

-type mapper(I) :: {mapper, fun((I) -> I)}.

-spec identity(J) -> J.
identity(A) ->
A.
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
---
source: compiler-core/src/erlang/tests/consts.rs
expression: "\n import mappers\n\n pub fn main() {\n mappers.id_mapper\n }\n "
assertion_line: 151
expression: "\n fn identity(a) {\n a\n }\n\n pub type Mapper(b) {\n Mapper(fn(b) -> b)\n }\n\n pub const id_mapper = Mapper(identity)\n "
---
-module(my@mod).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).

-export([main/0]).
-export([identity/1]).
-export_type([mapper/1]).

-spec main() -> mappers:mapper(any()).
main() ->
{mapper, fun mappers:identity/1}.
-type mapper(I) :: {mapper, fun((I) -> I)}.

-spec identity(J) -> J.
identity(A) ->
A.
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
---
source: compiler-core/src/erlang/tests/consts.rs
expression: "\n import mappers.{ id } as _\n\n pub fn main() {\n id\n }\n "
assertion_line: 121
expression: "\n fn identity(a) {\n a\n }\n\n pub const id = identity\n "
---
-module(my@mod).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).

-export([main/0]).

-spec main() -> fun((N) -> N).
main() ->
fun mappers:identity/1.
-export([identity/1]).

-spec identity(I) -> I.
identity(A) ->
A.
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
---
source: compiler-core/src/erlang/tests/consts.rs
expression: "\n import mappers.{ id_mapper } as _\n\n pub fn main() {\n id_mapper\n }\n "
assertion_line: 134
expression: "\n fn identity(a) {\n a\n }\n\n pub type Mapper(b) {\n Mapper(fn(b) -> b)\n }\n\n pub const id_mapper = Mapper(identity)\n "
---
-module(my@mod).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).

-export([main/0]).
-export([identity/1]).
-export_type([mapper/1]).

-spec main() -> mappers:mapper(any()).
main() ->
{mapper, fun mappers:identity/1}.
-type mapper(I) :: {mapper, fun((I) -> I)}.

-spec identity(J) -> J.
identity(A) ->
A.

0 comments on commit f1194fa

Please sign in to comment.