/* Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠMIT Ġlicense Ġthat Ġcan Ġbe Ċ Ġ* Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . rust . ide . annot ator Ċ Ċ import Ġcom . intellij . ide . annot ator . Batch Mode Ċ import Ġorg . rust . Mock Edition Ċ import Ġorg . rust . cargo . project . workspace . Cargo Workspace Ċ import Ġorg . rust . ide . colors . Rs Color Ċ Ċ class ĠRs Edition 2 0 1 8 Keywords Annot ator Test Ġ: ĠRs Annot ator TestBase ( Rs Edition 2 0 1 8 Keywords Annot ator :: class ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . setUp () ĊĠĠĠĠĠĠĠ Ġannotation Fixture . register Se ver ities ( listOf ( Rs Color . KEYWORD . test Severity )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ` test Ġedition Ġ 2 0 1 8 Ġkeywords Ġin Ġedition Ġ 2 0 1 5 `() Ġ= Ġcheck Errors (""" ĊĠĠĠĠĠĠĠ Ġfn Ġmain () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlet Ġasync Ġ= Ġ(); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlet Ġawait Ġ= Ġ(); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlet Ġtry Ġ= Ġ(); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlet Ġx Ġ= Ġasync ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlet Ġy Ġ= Ġawait ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlet Ġz Ġ= Ġtry ; ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġ@ Mock Edition ( Cargo Workspace . Edition . ED ITION _ 2 0 1 8 ) ĊĠĠĠ Ġfun Ġ` test Ġedition Ġ 2 0 1 8 Ġkeywords Ġin Ġedition Ġ 2 0 1 8 `() Ġ= Ġcheck Errors (""" ĊĠĠĠĠĠĠĠ Ġfn Ġmain () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlet Ġ< error Ġdescr =" ` async ` Ġis Ġreserved Ġkeyword Ġin ĠEdition Ġ 2 0 1 8 "> async </ error > Ġ= Ġ(); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlet Ġ< error Ġdescr =" ` await ` Ġis Ġreserved Ġkeyword Ġin ĠEdition Ġ 2 0 1 8 "> await </ error > Ġ= Ġ(); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlet Ġ< error Ġdescr =" ` try ` Ġis Ġreserved Ġkeyword Ġin ĠEdition Ġ 2 0 1 8 "> try </ error > Ġ= Ġ(); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlet Ġx Ġ= Ġ< error Ġdescr =" ` async ` Ġis Ġreserved Ġkeyword Ġin ĠEdition Ġ 2 0 1 8 "> async </ error >; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlet Ġy Ġ= Ġ< error Ġdescr =" ` await ` Ġis Ġreserved Ġkeyword Ġin ĠEdition Ġ 2 0 1 8 "> await </ error >; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlet Ġz Ġ= Ġ< error Ġdescr =" ` try ` Ġis Ġreserved Ġkeyword Ġin ĠEdition Ġ 2 0 1 8 "> try </ error >; ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġ// ĠWe Ġshould Ġreport Ġan Ġerror Ġhere ĊĠĠĠ Ġ@ Mock Edition ( Cargo Workspace . Edition . ED ITION _ 2 0 1 8 ) ĊĠĠĠ Ġfun Ġ` test Ġreserved Ġkeywords Ġin Ġmacro Ġnames Ġin Ġedition Ġ 2 0 1 8 `() Ġ= Ġcheck Errors (""" ĊĠĠĠĠĠĠĠ Ġfn Ġmain () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlet Ġx Ġ= Ġasync ! (); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlet Ġy Ġ= Ġawait !( x ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlet Ġz Ġ= Ġtry !( ()); ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġfun Ġ` test Ġasync Ġin Ġedition Ġ 2 0 1 5 `() Ġ= Ġcheck Errors (""" ĊĠĠĠĠĠĠĠ Ġ< error Ġdescr =" This Ġfeature Ġis Ġonly Ġavailable Ġin ĠEdition Ġ 2 0 1 8 "> async </ error > Ġfn Ġfoo () Ġ{} ĊĊĠĠĠĠĠĠĠ Ġfn Ġmain () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< error Ġdescr =" This Ġfeature Ġis Ġonly Ġavailable Ġin ĠEdition Ġ 2 0 1 8 "> async </ error > Ġ{ Ġ() Ġ}; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< error Ġdescr =" This Ġfeature Ġis Ġonly Ġavailable Ġin ĠEdition Ġ 2 0 1 8 "> async </ error > Ġ|| Ġ{ Ġ() Ġ}; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< error Ġdescr =" This Ġfeature Ġis Ġonly Ġavailable Ġin ĠEdition Ġ 2 0 1 8 "> async </ error > Ġmove Ġ|| Ġ{ Ġ() Ġ}; ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġ@ Mock Edition ( Cargo Workspace . Edition . ED ITION _ 2 0 1 8 ) ĊĠĠĠ Ġfun Ġ` test Ġasync Ġin Ġedition Ġ 2 0 1 8 `() Ġ= Ġcheck Errors (""" ĊĠĠĠĠĠĠĠ Ġ< KEYWORD > async </ KEYWORD > Ġfn Ġfoo () Ġ{} ĊĊĠĠĠĠĠĠĠ Ġfn Ġmain () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< KEYWORD > async </ KEYWORD > Ġ{ Ġ() Ġ}; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< KEYWORD > async </ KEYWORD > Ġ|| Ġ{ Ġ() Ġ}; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< KEYWORD > async </ KEYWORD > Ġmove Ġ|| Ġ{ Ġ() Ġ}; ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġfun Ġ` test Ġtry Ġin Ġedition Ġ 2 0 1 5 `() Ġ= Ġcheck Errors (""" ĊĠĠĠĠĠĠĠ Ġfn Ġmain () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< error Ġdescr =" This Ġfeature Ġis Ġonly Ġavailable Ġin ĠEdition Ġ 2 0 1 8 "> try </ error > Ġ{ Ġ() Ġ}; ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġ@ Mock Edition ( Cargo Workspace . Edition . ED ITION _ 2 0 1 8 ) ĊĠĠĠ Ġfun Ġ` test Ġtry Ġin Ġedition Ġ 2 0 1 8 `() Ġ= Ġcheck Errors (""" ĊĠĠĠĠĠĠĠ Ġfn Ġmain () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< KEYWORD > try </ KEYWORD > Ġ{ Ġ() Ġ}; ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġ@ Mock Edition ( Cargo Workspace . Edition . ED ITION _ 2 0 1 8 ) ĊĠĠĠ Ġfun Ġ` test Ġdon 't Ġanalyze Ġmacro Ġdef - call Ġbodies , Ġattributes Ġand Ġuse Ġitems `() Ġ= Ġcheck Errors (""" ĊĠĠĠĠĠĠĠ Ġuse Ġdummy :: async ; ĊĠĠĠĠĠĠĠ Ġuse Ġdummy :: await ; ĊĠĠĠĠĠĠĠ Ġuse Ġdummy ::{ async , Ġawait }; ĊĊĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġfoo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ() Ġ=> Ġ{ Ġasync Ġ}; ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ#[ < error Ġdescr =" ` async ` Ġis Ġreserved Ġkeyword Ġin ĠEdition Ġ 2 0 1 8 "> async </ error >] ĊĠĠĠĠĠĠĠ Ġfn Ġfoo 1 () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ# ![ < error Ġdescr =" ` async ` Ġis Ġreserved Ġkeyword Ġin ĠEdition Ġ 2 0 1 8 "> async </ error >] ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ#[ foo ::< error Ġdescr =" ` async ` Ġis Ġreserved Ġkeyword Ġin ĠEdition Ġ 2 0 1 8 "> async </ error >] ĊĠĠĠĠĠĠĠ Ġfn Ġfoo 2 () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ# ![ foo ::< error Ġdescr =" ` async ` Ġis Ġreserved Ġkeyword Ġin ĠEdition Ġ 2 0 1 8 "> async </ error >] ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ#[ bar ( async )] ĊĠĠĠĠĠĠĠ Ġfn Ġfoo 3 () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ# ![ bar ( async )] ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfn Ġmain () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfoo !( async ); ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġ@ Mock Edition ( Cargo Workspace . Edition . ED ITION _ 2 0 1 8 ) ĊĠĠĠ Ġfun Ġ` test Ġawait Ġpostfix Ġsyntax `() Ġ= Ġcheck Errors (""" ĊĠĠĠĠĠĠĠ Ġfn Ġmain () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlet Ġx Ġ= Ġf (). await ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlet Ġy Ġ= Ġf (). < error Ġdescr =" ` await ` Ġis Ġreserved Ġkeyword Ġin ĠEdition Ġ 2 0 1 8 "> await </ error >(); ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġ@ Batch Mode ĊĠĠĠ Ġ@ Mock Edition ( Cargo Workspace . Edition . ED ITION _ 2 0 1 8 ) ĊĠĠĠ Ġfun Ġ` test Ġno Ġkeyword Ġhighlighting Ġin Ġbatch Ġmode `() Ġ= Ġcheck Highlighting (""" ĊĠĠĠĠĠĠĠ Ġasync Ġfn Ġfoo () Ġ{} ĊĠĠĠĠĠĠĠ Ġfn Ġmain () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ Ġ() Ġ}; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlet Ġx Ġ= Ġfoo (). await ; ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ"" ", Ġignore Extra Highlighting Ġ= Ġfalse ) Ċ } Ċ