@@ -5,9 +5,78 @@ use std::str::{self, FromStr};
5
5
use proc_macro2:: { Literal , Span , Term , TokenStream , TokenTree } ;
6
6
7
7
#[ test]
8
- fn symbols ( ) {
9
- assert_eq ! ( Term :: new( "foo" , Span :: call_site( ) ) . as_str( ) , "foo" ) ;
10
- assert_eq ! ( Term :: new( "bar" , Span :: call_site( ) ) . as_str( ) , "bar" ) ;
8
+ fn terms ( ) {
9
+ assert_eq ! ( Term :: new( "String" , Span :: call_site( ) ) . as_str( ) , "String" ) ;
10
+ assert_eq ! ( Term :: new( "fn" , Span :: call_site( ) ) . as_str( ) , "fn" ) ;
11
+ assert_eq ! ( Term :: new( "_" , Span :: call_site( ) ) . as_str( ) , "_" ) ;
12
+ }
13
+
14
+ #[ test]
15
+ fn raw_terms ( ) {
16
+ assert_eq ! ( Term :: new( "r#String" , Span :: call_site( ) ) . as_str( ) , "r#String" ) ;
17
+ assert_eq ! ( Term :: new( "r#fn" , Span :: call_site( ) ) . as_str( ) , "r#fn" ) ;
18
+ assert_eq ! ( Term :: new( "r#_" , Span :: call_site( ) ) . as_str( ) , "r#_" ) ;
19
+ }
20
+
21
+ #[ test]
22
+ fn lifetimes ( ) {
23
+ assert_eq ! ( Term :: new( "'a" , Span :: call_site( ) ) . as_str( ) , "'a" ) ;
24
+ assert_eq ! ( Term :: new( "'static" , Span :: call_site( ) ) . as_str( ) , "'static" ) ;
25
+ assert_eq ! ( Term :: new( "'_" , Span :: call_site( ) ) . as_str( ) , "'_" ) ;
26
+ }
27
+
28
+ #[ test]
29
+ #[ should_panic( expected = "Term is not allowed to be empty; use Option<Term>" ) ]
30
+ fn term_empty ( ) {
31
+ Term :: new ( "" , Span :: call_site ( ) ) ;
32
+ }
33
+
34
+ #[ test]
35
+ #[ should_panic( expected = "Term cannot be a number; use Literal instead" ) ]
36
+ fn term_number ( ) {
37
+ Term :: new ( "255" , Span :: call_site ( ) ) ;
38
+ }
39
+
40
+ #[ test]
41
+ #[ should_panic( expected = "\" a#\" is not a valid Term" ) ]
42
+ fn term_invalid ( ) {
43
+ Term :: new ( "a#" , Span :: call_site ( ) ) ;
44
+ }
45
+
46
+ #[ test]
47
+ #[ should_panic( expected = "Term is not allowed to be empty; use Option<Term>" ) ]
48
+ fn raw_term_empty ( ) {
49
+ Term :: new ( "r#" , Span :: call_site ( ) ) ;
50
+ }
51
+
52
+ #[ test]
53
+ #[ should_panic( expected = "Term cannot be a number; use Literal instead" ) ]
54
+ fn raw_term_number ( ) {
55
+ Term :: new ( "r#255" , Span :: call_site ( ) ) ;
56
+ }
57
+
58
+ #[ test]
59
+ #[ should_panic( expected = "\" r#a#\" is not a valid Term" ) ]
60
+ fn raw_term_invalid ( ) {
61
+ Term :: new ( "r#a#" , Span :: call_site ( ) ) ;
62
+ }
63
+
64
+ #[ test]
65
+ #[ should_panic( expected = "Term is not allowed to be empty; use Option<Term>" ) ]
66
+ fn lifetime_empty ( ) {
67
+ Term :: new ( "'" , Span :: call_site ( ) ) ;
68
+ }
69
+
70
+ #[ test]
71
+ #[ should_panic( expected = "Term cannot be a number; use Literal instead" ) ]
72
+ fn lifetime_number ( ) {
73
+ Term :: new ( "'255" , Span :: call_site ( ) ) ;
74
+ }
75
+
76
+ #[ test]
77
+ #[ should_panic( expected = r#""\'a#" is not a valid Term"# ) ]
78
+ fn lifetime_invalid ( ) {
79
+ Term :: new ( "'a#" , Span :: call_site ( ) ) ;
11
80
}
12
81
13
82
#[ test]
0 commit comments