Skip to content

Commit 14ac453

Browse files
committed
Merge branch 'master' into feat/payout
2 parents 8e5e777 + db29912 commit 14ac453

File tree

7 files changed

+102
-91
lines changed

7 files changed

+102
-91
lines changed

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
[workspace]
2+
resolver = "2"
23
members = [
34
"near-sdk",
45
"near-sdk-macros",

near-sdk-macros/src/core_impl/info_extractor/visitor.rs

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -87,23 +87,8 @@ impl Visitor {
8787
}
8888

8989
pub fn visit_private_attr(&mut self, _attr: &Attribute) -> syn::Result<()> {
90-
use VisitorKind::*;
91-
92-
match self.kind {
93-
Call | View => {
94-
self.parsed_data.is_private = true;
95-
Ok(())
96-
}
97-
Init => {
98-
// TODO: return an error instead in 5.0
99-
// see https://github.com/near/near-sdk-rs/issues/1040
100-
println!("near_bindgen: private init functions will be disallowed in 5.0");
101-
Ok(())
102-
103-
// let message = format!("{} function can't be private.", self.kind);
104-
// Err(Error::new(attr.span(), message))
105-
}
106-
}
90+
self.parsed_data.is_private = true;
91+
Ok(())
10792
}
10893

10994
pub fn visit_result_serializer_attr(

near-sdk/compilation_tests/all.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,11 @@ fn compilation_tests() {
2121
t.pass("compilation_tests/function_error.rs");
2222
t.pass("compilation_tests/enum_near_bindgen.rs");
2323
t.pass("compilation_tests/schema_derive.rs");
24-
t.compile_fail("compilation_tests/schema_derive_invalids.rs");
24+
if rustversion::cfg!(since(1.72)) {
25+
// The compilation error output has slightly changed in 1.72, so we
26+
// snapshoted this new version
27+
t.compile_fail("compilation_tests/schema_derive_invalids.rs");
28+
}
2529
t.compile_fail("compilation_tests/generic_function.rs");
2630
t.compile_fail("compilation_tests/generic_const_function.rs");
2731
t.pass("compilation_tests/self_support.rs");
@@ -30,4 +34,5 @@ fn compilation_tests() {
3034
//
3135
// t.compile_fail("compilation_tests/self_forbidden_in_non_init_fn_return.rs");
3236
// t.compile_fail("compilation_tests/self_forbidden_in_non_init_fn_arg.rs");
37+
t.pass("compilation_tests/private_init_method.rs");
3338
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
//! Even though it might feel unintuitive, a method can be both private and init.
2+
//! See: https://github.com/near/near-sdk-rs/issues/1040#issuecomment-1687126452
3+
4+
use borsh::{BorshDeserialize, BorshSerialize};
5+
use near_sdk::near_bindgen;
6+
7+
#[near_bindgen]
8+
#[derive(BorshDeserialize, BorshSerialize)]
9+
struct Incrementer {
10+
value: u32,
11+
}
12+
13+
#[near_bindgen]
14+
impl Incrementer {
15+
#[private]
16+
#[init]
17+
pub fn new(starting_value: u32) -> Self {
18+
Self { value: starting_value }
19+
}
20+
}
21+
22+
fn main() {}

near-sdk/compilation_tests/schema_derive_invalids.stderr

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -68,23 +68,23 @@ error: `NearSchema` does not support derive for unions
6868
| |_^
6969

7070
error[E0277]: the trait bound `Inner: JsonSchema` is not satisfied
71-
--> compilation_tests/schema_derive_invalids.rs:6:14
72-
|
73-
6 | struct Outer(Inner);
74-
| ^^^^^ the trait `JsonSchema` is not implemented for `Inner`
75-
|
76-
= help: the following other types implement trait `JsonSchema`:
77-
&'a T
78-
&'a mut T
79-
()
80-
(T0, T1)
81-
(T0, T1, T2)
82-
(T0, T1, T2, T3)
83-
(T0, T1, T2, T3, T4)
84-
(T0, T1, T2, T3, T4, T5)
85-
and 165 others
71+
--> compilation_tests/schema_derive_invalids.rs:6:14
72+
|
73+
6 | struct Outer(Inner);
74+
| ^^^^^ the trait `JsonSchema` is not implemented for `Inner`
75+
|
76+
= help: the following other types implement trait `JsonSchema`:
77+
bool
78+
char
79+
isize
80+
i8
81+
i16
82+
i32
83+
i64
84+
i128
85+
and $N others
8686
note: required by a bound in `SchemaGenerator::subschema_for`
87-
--> $CARGO/schemars-0.8.12/src/gen.rs
88-
|
89-
| pub fn subschema_for<T: ?Sized + JsonSchema>(&mut self) -> Schema {
90-
| ^^^^^^^^^^ required by this bound in `SchemaGenerator::subschema_for`
87+
--> $CARGO/schemars-0.8.13/src/gen.rs
88+
|
89+
| pub fn subschema_for<T: ?Sized + JsonSchema>(&mut self) -> Schema {
90+
| ^^^^^^^^^^ required by this bound in `SchemaGenerator::subschema_for`

near-sdk/src/collections/tree_map.rs

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1134,7 +1134,7 @@ mod tests {
11341134
#[test]
11351135
fn test_lower() {
11361136
let mut map: TreeMap<u32, u32> = TreeMap::new(next_trie_id());
1137-
let vec: Vec<u32> = vec![10, 20, 30, 40, 50];
1137+
let vec = [10, 20, 30, 40, 50];
11381138

11391139
for x in vec.iter() {
11401140
map.insert(x, &1);
@@ -1154,7 +1154,7 @@ mod tests {
11541154
#[test]
11551155
fn test_higher() {
11561156
let mut map: TreeMap<u32, u32> = TreeMap::new(next_trie_id());
1157-
let vec: Vec<u32> = vec![10, 20, 30, 40, 50];
1157+
let vec = [10, 20, 30, 40, 50];
11581158

11591159
for x in vec.iter() {
11601160
map.insert(x, &1);
@@ -1174,7 +1174,7 @@ mod tests {
11741174
#[test]
11751175
fn test_floor_key() {
11761176
let mut map: TreeMap<u32, u32> = TreeMap::new(next_trie_id());
1177-
let vec: Vec<u32> = vec![10, 20, 30, 40, 50];
1177+
let vec = [10, 20, 30, 40, 50];
11781178

11791179
for x in vec.iter() {
11801180
map.insert(x, &1);
@@ -1194,7 +1194,7 @@ mod tests {
11941194
#[test]
11951195
fn test_ceil_key() {
11961196
let mut map: TreeMap<u32, u32> = TreeMap::new(next_trie_id());
1197-
let vec: Vec<u32> = vec![10, 20, 30, 40, 50];
1197+
let vec = [10, 20, 30, 40, 50];
11981198

11991199
for x in vec.iter() {
12001200
map.insert(x, &1);
@@ -1231,7 +1231,7 @@ mod tests {
12311231

12321232
#[test]
12331233
fn test_remove_3_desc() {
1234-
let vec: Vec<u32> = vec![3, 2, 1];
1234+
let vec = [3, 2, 1];
12351235
let mut map: TreeMap<u32, u32> = TreeMap::new(next_trie_id());
12361236

12371237
for x in &vec {
@@ -1250,7 +1250,7 @@ mod tests {
12501250

12511251
#[test]
12521252
fn test_remove_3_asc() {
1253-
let vec: Vec<u32> = vec![1, 2, 3];
1253+
let vec = [1, 2, 3];
12541254
let mut map: TreeMap<u32, u32> = TreeMap::new(next_trie_id());
12551255

12561256
for x in &vec {
@@ -1269,8 +1269,8 @@ mod tests {
12691269

12701270
#[test]
12711271
fn test_remove_7_regression_1() {
1272-
let vec: Vec<u32> =
1273-
vec![2104297040, 552624607, 4269683389, 3382615941, 155419892, 4102023417, 1795725075];
1272+
let vec =
1273+
[2104297040, 552624607, 4269683389, 3382615941, 155419892, 4102023417, 1795725075];
12741274
let mut map: TreeMap<u32, u32> = TreeMap::new(next_trie_id());
12751275

12761276
for x in &vec {
@@ -1289,8 +1289,7 @@ mod tests {
12891289

12901290
#[test]
12911291
fn test_remove_7_regression_2() {
1292-
let vec: Vec<u32> =
1293-
vec![700623085, 87488544, 1500140781, 1111706290, 3187278102, 4042663151, 3731533080];
1292+
let vec = [700623085, 87488544, 1500140781, 1111706290, 3187278102, 4042663151, 3731533080];
12941293
let mut map: TreeMap<u32, u32> = TreeMap::new(next_trie_id());
12951294

12961295
for x in &vec {
@@ -1309,7 +1308,7 @@ mod tests {
13091308

13101309
#[test]
13111310
fn test_remove_9_regression() {
1312-
let vec: Vec<u32> = vec![
1311+
let vec = [
13131312
1186903464, 506371929, 1738679820, 1883936615, 1815331350, 1512669683, 3581743264,
13141313
1396738166, 1902061760,
13151314
];
@@ -1331,7 +1330,7 @@ mod tests {
13311330

13321331
#[test]
13331332
fn test_remove_20_regression_1() {
1334-
let vec: Vec<u32> = vec![
1333+
let vec = [
13351334
552517392, 3638992158, 1015727752, 2500937532, 638716734, 586360620, 2476692174,
13361335
1425948996, 3608478547, 757735878, 2709959928, 2092169539, 3620770200, 783020918,
13371336
1986928932, 200210441, 1972255302, 533239929, 497054557, 2137924638,
@@ -1354,7 +1353,7 @@ mod tests {
13541353

13551354
#[test]
13561355
fn test_remove_7_regression() {
1357-
let vec: Vec<u32> = vec![280, 606, 163, 857, 436, 508, 44, 801];
1356+
let vec = [280, 606, 163, 857, 436, 508, 44, 801];
13581357

13591358
let mut map: TreeMap<u32, u32> = TreeMap::new(next_trie_id());
13601359

@@ -1377,8 +1376,8 @@ mod tests {
13771376

13781377
#[test]
13791378
fn test_insert_8_remove_4_regression() {
1380-
let insert = vec![882, 398, 161, 76];
1381-
let remove = vec![242, 687, 860, 811];
1379+
let insert = [882, 398, 161, 76];
1380+
let remove = [242, 687, 860, 811];
13821381

13831382
let mut map: TreeMap<u32, u32> = TreeMap::new(next_trie_id());
13841383

@@ -1443,8 +1442,8 @@ mod tests {
14431442

14441443
#[test]
14451444
fn test_insert_2_remove_2_regression() {
1446-
let ins: Vec<u32> = vec![11760225, 611327897];
1447-
let rem: Vec<u32> = vec![2982517385, 1833990072];
1445+
let ins = [11760225, 611327897];
1446+
let rem = [2982517385, 1833990072];
14481447

14491448
let mut map: TreeMap<u32, u32> = TreeMap::new(next_trie_id());
14501449
map.insert(&ins[0], &1);
@@ -1581,8 +1580,8 @@ mod tests {
15811580
fn test_iter_from() {
15821581
let mut map: TreeMap<u32, u32> = TreeMap::new(next_trie_id());
15831582

1584-
let one: Vec<u32> = vec![10, 20, 30, 40, 50];
1585-
let two: Vec<u32> = vec![45, 35, 25, 15, 5];
1583+
let one = [10, 20, 30, 40, 50];
1584+
let two = [45, 35, 25, 15, 5];
15861585

15871586
for x in &one {
15881587
map.insert(x, &42);
@@ -1625,8 +1624,8 @@ mod tests {
16251624
fn test_iter_rev_from() {
16261625
let mut map: TreeMap<u32, u32> = TreeMap::new(next_trie_id());
16271626

1628-
let one: Vec<u32> = vec![10, 20, 30, 40, 50];
1629-
let two: Vec<u32> = vec![45, 35, 25, 15, 5];
1627+
let one = [10, 20, 30, 40, 50];
1628+
let two = [45, 35, 25, 15, 5];
16301629

16311630
for x in &one {
16321631
map.insert(x, &42);
@@ -1663,8 +1662,8 @@ mod tests {
16631662
fn test_range() {
16641663
let mut map: TreeMap<u32, u32> = TreeMap::new(next_trie_id());
16651664

1666-
let one: Vec<u32> = vec![10, 20, 30, 40, 50];
1667-
let two: Vec<u32> = vec![45, 35, 25, 15, 5];
1665+
let one = [10, 20, 30, 40, 50];
1666+
let two = [45, 35, 25, 15, 5];
16681667

16691668
for x in &one {
16701669
map.insert(x, &42);
@@ -1760,17 +1759,17 @@ mod tests {
17601759

17611760
#[test]
17621761
fn test_balance_regression_1() {
1763-
let insert = vec![(2, 0), (3, 0), (4, 0)];
1764-
let remove = vec![0, 0, 0, 1];
1762+
let insert = [(2, 0), (3, 0), (4, 0)];
1763+
let remove = [0, 0, 0, 1];
17651764

17661765
let map = avl(&insert, &remove);
17671766
assert!(is_balanced(&map, map.root));
17681767
}
17691768

17701769
#[test]
17711770
fn test_balance_regression_2() {
1772-
let insert = vec![(1, 0), (2, 0), (0, 0), (3, 0), (5, 0), (6, 0)];
1773-
let remove = vec![0, 0, 0, 3, 5, 6, 7, 4];
1771+
let insert = [(1, 0), (2, 0), (0, 0), (3, 0), (5, 0), (6, 0)];
1772+
let remove = [0, 0, 0, 3, 5, 6, 7, 4];
17741773

17751774
let map = avl(&insert, &remove);
17761775
assert!(is_balanced(&map, map.root));

0 commit comments

Comments
 (0)