@@ -88,15 +88,23 @@ impl fmt::Display for LinearizationError {
8888#[ cfg( test) ]
8989mod tests {
9090 use crate :: driver:: tests:: setup_graph;
91+ use crate :: unstable:: UnstableFeature ;
9192
9293 use super :: * ;
9394
9495 #[ test]
9596 fn test_linearize_simple_import ( ) {
96- let ( graph, ids, _dir) = setup_graph ( vec ! [
97- ( "main.simf" , "use lib::math::some_func;" ) ,
98- ( "libs/lib/math.simf" , "" ) ,
99- ] ) ;
97+ let ( graph, ids, _dir) = setup_graph (
98+ vec ! [
99+ ( "main.simf" , "use lib::math::some_func;" ) ,
100+ ( "libs/lib/math.simf" , "" ) ,
101+ ] ,
102+ [
103+ UnstableFeature :: UseKeyword ,
104+ UnstableFeature :: CrateKeyword ,
105+ UnstableFeature :: AsKeyword ,
106+ ] ,
107+ ) ;
100108
101109 let order = graph. linearize ( ) . unwrap ( ) ;
102110
@@ -114,12 +122,19 @@ mod tests {
114122 // B -> imports Common
115123 // Expected: Common loaded ONLY ONCE.
116124
117- let ( graph, ids, _dir) = setup_graph ( vec ! [
118- ( "main.simf" , "use lib::A::foo; use lib::B::bar;" ) ,
119- ( "libs/lib/A.simf" , "use crate::Common::dummy1;" ) ,
120- ( "libs/lib/B.simf" , "use crate::Common::dummy2;" ) ,
121- ( "libs/lib/Common.simf" , "" ) ,
122- ] ) ;
125+ let ( graph, ids, _dir) = setup_graph (
126+ vec ! [
127+ ( "main.simf" , "use lib::A::foo; use lib::B::bar;" ) ,
128+ ( "libs/lib/A.simf" , "use crate::Common::dummy1;" ) ,
129+ ( "libs/lib/B.simf" , "use crate::Common::dummy2;" ) ,
130+ ( "libs/lib/Common.simf" , "" ) ,
131+ ] ,
132+ [
133+ UnstableFeature :: UseKeyword ,
134+ UnstableFeature :: CrateKeyword ,
135+ UnstableFeature :: AsKeyword ,
136+ ] ,
137+ ) ;
123138
124139 let order = graph. linearize ( ) . unwrap ( ) ;
125140
@@ -137,11 +152,18 @@ mod tests {
137152
138153 #[ test]
139154 fn test_linearize_detects_cycle ( ) {
140- let ( graph, _, _dir) = setup_graph ( vec ! [
141- ( "main.simf" , "use lib::A::entry;" ) ,
142- ( "libs/lib/A.simf" , "use crate::B::func;" ) ,
143- ( "libs/lib/B.simf" , "use crate::A::func;" ) ,
144- ] ) ;
155+ let ( graph, _, _dir) = setup_graph (
156+ vec ! [
157+ ( "main.simf" , "use lib::A::entry;" ) ,
158+ ( "libs/lib/A.simf" , "use crate::B::func;" ) ,
159+ ( "libs/lib/B.simf" , "use crate::A::func;" ) ,
160+ ] ,
161+ [
162+ UnstableFeature :: UseKeyword ,
163+ UnstableFeature :: CrateKeyword ,
164+ UnstableFeature :: AsKeyword ,
165+ ] ,
166+ ) ;
145167
146168 let order = graph. linearize ( ) ;
147169 assert ! ( matches!(
@@ -154,13 +176,20 @@ mod tests {
154176 fn test_linearize_allows_conflicting_nested_import_order ( ) {
155177 // A imports X then Y, while B imports Y then X.
156178 // This DAG is still valid because neither X nor Y depends on the other.
157- let ( graph, ids, _dir) = setup_graph ( vec ! [
158- ( "main.simf" , "use lib::A::foo; use lib::B::bar;" ) ,
159- ( "libs/lib/A.simf" , "use crate::X::foo; use crate::Y::bar;" ) ,
160- ( "libs/lib/B.simf" , "use crate::Y::baz; use crate::X::qux;" ) ,
161- ( "libs/lib/X.simf" , "" ) ,
162- ( "libs/lib/Y.simf" , "" ) ,
163- ] ) ;
179+ let ( graph, ids, _dir) = setup_graph (
180+ vec ! [
181+ ( "main.simf" , "use lib::A::foo; use lib::B::bar;" ) ,
182+ ( "libs/lib/A.simf" , "use crate::X::foo; use crate::Y::bar;" ) ,
183+ ( "libs/lib/B.simf" , "use crate::Y::baz; use crate::X::qux;" ) ,
184+ ( "libs/lib/X.simf" , "" ) ,
185+ ( "libs/lib/Y.simf" , "" ) ,
186+ ] ,
187+ [
188+ UnstableFeature :: UseKeyword ,
189+ UnstableFeature :: CrateKeyword ,
190+ UnstableFeature :: AsKeyword ,
191+ ] ,
192+ ) ;
164193
165194 let order = graph
166195 . linearize ( )
0 commit comments