@@ -1213,38 +1213,56 @@ if Version.match?(System.version(), ">= 1.17.0-dev") do
1213
1213
expand ( { form , meta , [ arg , [ ] ] } , state , env )
1214
1214
end
1215
1215
1216
- defp expand ( { :alias , meta , [ arg , opts ] } , state , env ) do
1216
+ defp expand ( { :alias , meta , [ arg , opts ] } = node , state , env ) do
1217
1217
{ arg , state , env } = expand ( arg , state , env )
1218
1218
{ opts , state , env } = expand_directive_opts ( opts , state , env )
1219
1219
1220
- # An actual compiler would raise if the alias fails.
1221
- case Macro.Env . define_alias ( env , meta , arg , [ trace: false ] ++ opts ) do
1222
- { :ok , env } -> { arg , state , env }
1223
- { :error , _ } -> { arg , state , env }
1220
+ case arg do
1221
+ { :__aliases__ , _ , _ } ->
1222
+ # An actual compiler would raise if the alias fails.
1223
+ case Macro.Env . define_alias ( env , meta , arg , [ trace: false ] ++ opts ) do
1224
+ { :ok , env } -> { arg , state , env }
1225
+ { :error , _ } -> { arg , state , env }
1226
+ end
1227
+
1228
+ _ ->
1229
+ { node , state , env }
1224
1230
end
1225
1231
end
1226
1232
1227
- defp expand ( { :require , meta , [ arg , opts ] } , state , env ) do
1233
+ defp expand ( { :require , meta , [ arg , opts ] } = node , state , env ) do
1228
1234
{ arg , state , env } = expand ( arg , state , env )
1229
1235
{ opts , state , env } = expand_directive_opts ( opts , state , env )
1230
1236
1231
- # An actual compiler would raise if the module is not defined or if the require fails.
1232
- case Macro.Env . define_require ( env , meta , arg , [ trace: false ] ++ opts ) do
1233
- { :ok , env } -> { arg , state , env }
1234
- { :error , _ } -> { arg , state , env }
1237
+ case arg do
1238
+ { :__aliases__ , _ , _ } ->
1239
+ # An actual compiler would raise if the module is not defined or if the require fails.
1240
+ case Macro.Env . define_require ( env , meta , arg , [ trace: false ] ++ opts ) do
1241
+ { :ok , env } -> { arg , state , env }
1242
+ { :error , _ } -> { arg , state , env }
1243
+ end
1244
+
1245
+ _ ->
1246
+ { node , state , env }
1235
1247
end
1236
1248
end
1237
1249
1238
- defp expand ( { :import , meta , [ arg , opts ] } , state , env ) do
1250
+ defp expand ( { :import , meta , [ arg , opts ] } = node , state , env ) do
1239
1251
{ arg , state , env } = expand ( arg , state , env )
1240
1252
{ opts , state , env } = expand_directive_opts ( opts , state , env )
1241
1253
1242
- # An actual compiler would raise if the module is not defined or if the import fails.
1243
- with true <- is_atom ( arg ) and Code . ensure_loaded? ( arg ) ,
1244
- { :ok , env } <- Macro.Env . define_import ( env , meta , arg , [ trace: false ] ++ opts ) do
1245
- { arg , state , env }
1246
- else
1247
- _ -> { arg , state , env }
1254
+ case arg do
1255
+ { :__aliases__ , _ , _ } ->
1256
+ # An actual compiler would raise if the module is not defined or if the import fails.
1257
+ with true <- is_atom ( arg ) and Code . ensure_loaded? ( arg ) ,
1258
+ { :ok , env } <- Macro.Env . define_import ( env , meta , arg , [ trace: false ] ++ opts ) do
1259
+ { arg , state , env }
1260
+ else
1261
+ _ -> { arg , state , env }
1262
+ end
1263
+
1264
+ _ ->
1265
+ { node , state , env }
1248
1266
end
1249
1267
end
1250
1268
0 commit comments