SomeFile.txt 468 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978
  1. 2022-03-22T23:59:29.857430Z TRACE triagebot::github: get "https://api.github.com/search/issues?q=state:open+is:issue+label:major-change+-label:charter-needed+repo:rust-lang/lang-team&sort=created&order=asc&per_page=100&page=1"
  2. 2022-03-22T23:59:29.857776Z DEBUG triagebot::github: _send_req with RequestBuilder { method: GET, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.github.com")), port: None, path: "/search/issues", query: Some("q=state:open+is:issue+label:major-change+-label:charter-needed+repo:rust-lang/lang-team&sort=created&order=asc&per_page=100&page=1"), fragment: None }, headers: {"user-agent": "rust-lang-triagebot", "authorization": "token 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"} }
  3. 2022-03-22T23:59:29.858159Z DEBUG reqwest::connect: starting new connection: https://api.github.com/
  4. 2022-03-22T23:59:29.858456Z DEBUG hyper::client::connect::dns: resolving host="api.github.com"
  5. 2022-03-22T23:59:29.861077Z DEBUG hyper::client::connect::http: connecting to 140.82.112.6:443
  6. 2022-03-22T23:59:29.935790Z DEBUG hyper::client::connect::http: connected to 140.82.112.6:443
  7. 2022-03-22T23:59:30.236386Z DEBUG hyper::proto::h1::io: flushed 293 bytes
  8. 2022-03-22T23:59:30.511454Z DEBUG hyper::proto::h1::io: parsed 25 headers
  9. 2022-03-22T23:59:30.511648Z DEBUG hyper::proto::h1::conn: incoming body is content-length (81089 bytes)
  10. 2022-03-22T23:59:30.511939Z DEBUG reqwest::async_impl::client: response '200 OK' for https://api.github.com/search/issues?q=state:open+is:issue+label:major-change+-label:charter-needed+repo:rust-lang/lang-team&sort=created&order=asc&per_page=100&page=1
  11. 2022-03-22T23:59:30.651857Z DEBUG hyper::proto::h1::conn: incoming body completed
  12. 2022-03-22T23:59:30.652072Z DEBUG hyper::client::pool: pooling idle connection for ("https", api.github.com)
  13. 2022-03-22T23:59:30.654370Z TRACE triagebot::github: get "https://api.github.com/repos/rust-lang/lang-team/pulls?state=open&is=pull-request&labels=&filter=all&sort=created&direction=asc&per_page=100"
  14. 2022-03-22T23:59:30.654564Z DEBUG triagebot::github: _send_req with RequestBuilder { method: GET, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.github.com")), port: None, path: "/repos/rust-lang/lang-team/pulls", query: Some("state=open&is=pull-request&labels=&filter=all&sort=created&direction=asc&per_page=100"), fragment: None }, headers: {"user-agent": "rust-lang-triagebot", "authorization": "token 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"} }
  15. 2022-03-22T23:59:30.654752Z DEBUG hyper::client::pool: reuse idle connection for ("https", api.github.com)
  16. 2022-03-22T23:59:30.654959Z DEBUG hyper::proto::h1::io: flushed 266 bytes
  17. 2022-03-22T23:59:30.835977Z DEBUG hyper::proto::h1::io: parsed 26 headers
  18. 2022-03-22T23:59:30.836057Z DEBUG hyper::proto::h1::conn: incoming body is content-length (2 bytes)
  19. 2022-03-22T23:59:30.836124Z DEBUG hyper::proto::h1::conn: incoming body completed
  20. 2022-03-22T23:59:30.836296Z DEBUG hyper::client::pool: pooling idle connection for ("https", api.github.com)
  21. 2022-03-22T23:59:30.836357Z DEBUG reqwest::async_impl::client: response '200 OK' for https://api.github.com/repos/rust-lang/lang-team/pulls?state=open&is=pull-request&labels=&filter=all&sort=created&direction=asc&per_page=100
  22. 2022-03-22T23:59:30.836503Z TRACE triagebot::github: get "https://api.github.com/repos/rust-lang/lang-team/issues?state=open&is=issue&labels=meeting-proposal,meeting-scheduled&filter=all&sort=created&direction=asc&per_page=100"
  23. 2022-03-22T23:59:30.836678Z DEBUG triagebot::github: _send_req with RequestBuilder { method: GET, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.github.com")), port: None, path: "/repos/rust-lang/lang-team/issues", query: Some("state=open&is=issue&labels=meeting-proposal,meeting-scheduled&filter=all&sort=created&direction=asc&per_page=100"), fragment: None }, headers: {"user-agent": "rust-lang-triagebot", "authorization": "token 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"} }
  24. 2022-03-22T23:59:30.836866Z DEBUG hyper::client::pool: reuse idle connection for ("https", api.github.com)
  25. 2022-03-22T23:59:30.837035Z DEBUG hyper::proto::h1::io: flushed 294 bytes
  26. 2022-03-22T23:59:31.035927Z DEBUG hyper::proto::h1::io: parsed 26 headers
  27. 2022-03-22T23:59:31.036039Z DEBUG hyper::proto::h1::conn: incoming body is content-length (21308 bytes)
  28. 2022-03-22T23:59:31.036228Z DEBUG reqwest::async_impl::client: response '200 OK' for https://api.github.com/repos/rust-lang/lang-team/issues?state=open&is=issue&labels=meeting-proposal,meeting-scheduled&filter=all&sort=created&direction=asc&per_page=100
  29. 2022-03-22T23:59:31.038133Z DEBUG hyper::proto::h1::conn: incoming body completed
  30. 2022-03-22T23:59:31.038295Z DEBUG hyper::client::pool: pooling idle connection for ("https", api.github.com)
  31. 2022-03-22T23:59:31.039182Z TRACE triagebot::github: get "https://api.github.com/repos/rust-lang/rfcs/issues?state=open&is=pr&labels=disposition-merge,finished-final-comment-period,T-lang&filter=all&sort=created&direction=asc&per_page=100"
  32. 2022-03-22T23:59:31.039348Z DEBUG triagebot::github: _send_req with RequestBuilder { method: GET, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.github.com")), port: None, path: "/repos/rust-lang/rfcs/issues", query: Some("state=open&is=pr&labels=disposition-merge,finished-final-comment-period,T-lang&filter=all&sort=created&direction=asc&per_page=100"), fragment: None }, headers: {"user-agent": "rust-lang-triagebot", "authorization": "token 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"} }
  33. 2022-03-22T23:59:31.039512Z DEBUG hyper::client::pool: reuse idle connection for ("https", api.github.com)
  34. 2022-03-22T23:59:31.039659Z DEBUG hyper::proto::h1::io: flushed 306 bytes
  35. 2022-03-22T23:59:31.285804Z DEBUG hyper::proto::h1::io: parsed 26 headers
  36. 2022-03-22T23:59:31.285877Z DEBUG hyper::proto::h1::conn: incoming body is content-length (2 bytes)
  37. 2022-03-22T23:59:31.285930Z DEBUG hyper::proto::h1::conn: incoming body completed
  38. 2022-03-22T23:59:31.286062Z DEBUG hyper::client::pool: pooling idle connection for ("https", api.github.com)
  39. 2022-03-22T23:59:31.286112Z DEBUG reqwest::async_impl::client: response '200 OK' for https://api.github.com/repos/rust-lang/rfcs/issues?state=open&is=pr&labels=disposition-merge,finished-final-comment-period,T-lang&filter=all&sort=created&direction=asc&per_page=100
  40. 2022-03-22T23:59:31.286239Z TRACE triagebot::github: get "https://api.github.com/repos/rust-lang/rfcs/issues?state=open&labels=T-lang,P-critical&filter=all&sort=created&direction=asc&per_page=100"
  41. 2022-03-22T23:59:31.286392Z DEBUG triagebot::github: _send_req with RequestBuilder { method: GET, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.github.com")), port: None, path: "/repos/rust-lang/rfcs/issues", query: Some("state=open&labels=T-lang,P-critical&filter=all&sort=created&direction=asc&per_page=100"), fragment: None }, headers: {"user-agent": "rust-lang-triagebot", "authorization": "token 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"} }
  42. 2022-03-22T23:59:31.286644Z DEBUG hyper::client::pool: reuse idle connection for ("https", api.github.com)
  43. 2022-03-22T23:59:31.286768Z DEBUG hyper::proto::h1::io: flushed 263 bytes
  44. 2022-03-22T23:59:31.438369Z DEBUG hyper::proto::h1::io: parsed 26 headers
  45. 2022-03-22T23:59:31.438445Z DEBUG hyper::proto::h1::conn: incoming body is content-length (2 bytes)
  46. 2022-03-22T23:59:31.438495Z DEBUG hyper::proto::h1::conn: incoming body completed
  47. 2022-03-22T23:59:31.438626Z DEBUG hyper::client::pool: pooling idle connection for ("https", api.github.com)
  48. 2022-03-22T23:59:31.438673Z DEBUG reqwest::async_impl::client: response '200 OK' for https://api.github.com/repos/rust-lang/rfcs/issues?state=open&labels=T-lang,P-critical&filter=all&sort=created&direction=asc&per_page=100
  49. 2022-03-22T23:59:31.438787Z TRACE triagebot::github: get "https://api.github.com/repos/rust-lang/rfcs/issues?state=open&labels=I-lang-nominated&filter=all&sort=created&direction=asc&per_page=100"
  50. 2022-03-22T23:59:31.438902Z DEBUG triagebot::github: _send_req with RequestBuilder { method: GET, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.github.com")), port: None, path: "/repos/rust-lang/rfcs/issues", query: Some("state=open&labels=I-lang-nominated&filter=all&sort=created&direction=asc&per_page=100"), fragment: None }, headers: {"user-agent": "rust-lang-triagebot", "authorization": "token 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"} }
  51. 2022-03-22T23:59:31.439020Z DEBUG hyper::client::pool: reuse idle connection for ("https", api.github.com)
  52. 2022-03-22T23:59:31.439142Z DEBUG hyper::proto::h1::io: flushed 262 bytes
  53. 2022-03-22T23:59:31.586111Z DEBUG hyper::proto::h1::io: parsed 26 headers
  54. 2022-03-22T23:59:31.586260Z DEBUG hyper::proto::h1::conn: incoming body is content-length (4095 bytes)
  55. 2022-03-22T23:59:31.586475Z DEBUG reqwest::async_impl::client: response '200 OK' for https://api.github.com/repos/rust-lang/rfcs/issues?state=open&labels=I-lang-nominated&filter=all&sort=created&direction=asc&per_page=100
  56. 2022-03-22T23:59:31.586659Z DEBUG hyper::proto::h1::conn: incoming body completed
  57. 2022-03-22T23:59:31.586852Z DEBUG hyper::client::pool: pooling idle connection for ("https", api.github.com)
  58. 2022-03-22T23:59:31.587312Z TRACE triagebot::github: get "https://api.github.com/search/issues?q=state:open+label:T-lang+label:proposed-final-comment-period+-label:finished-final-comment-period+repo:rust-lang/rfcs&sort=created&order=asc&per_page=100&page=1"
  59. 2022-03-22T23:59:31.587477Z DEBUG triagebot::github: _send_req with RequestBuilder { method: GET, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.github.com")), port: None, path: "/search/issues", query: Some("q=state:open+label:T-lang+label:proposed-final-comment-period+-label:finished-final-comment-period+repo:rust-lang/rfcs&sort=created&order=asc&per_page=100&page=1"), fragment: None }, headers: {"user-agent": "rust-lang-triagebot", "authorization": "token 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"} }
  60. 2022-03-22T23:59:31.587736Z DEBUG hyper::client::pool: reuse idle connection for ("https", api.github.com)
  61. 2022-03-22T23:59:31.587977Z DEBUG hyper::proto::h1::io: flushed 324 bytes
  62. 2022-03-22T23:59:31.835854Z DEBUG hyper::proto::h1::io: parsed 25 headers
  63. 2022-03-22T23:59:31.835993Z DEBUG hyper::proto::h1::conn: incoming body is content-length (7995 bytes)
  64. 2022-03-22T23:59:31.836232Z DEBUG reqwest::async_impl::client: response '200 OK' for https://api.github.com/search/issues?q=state:open+label:T-lang+label:proposed-final-comment-period+-label:finished-final-comment-period+repo:rust-lang/rfcs&sort=created&order=asc&per_page=100&page=1
  65. 2022-03-22T23:59:31.836675Z DEBUG hyper::proto::h1::conn: incoming body completed
  66. 2022-03-22T23:59:31.836841Z DEBUG hyper::client::pool: pooling idle connection for ("https", api.github.com)
  67. 2022-03-22T23:59:31.837237Z TRACE triagebot::github: get "https://api.github.com/search/issues?q=state:open+label:T-lang+label:final-comment-period+-label:finished-final-comment-period+repo:rust-lang/rfcs&sort=created&order=asc&per_page=100&page=1"
  68. 2022-03-22T23:59:31.837356Z DEBUG triagebot::github: _send_req with RequestBuilder { method: GET, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.github.com")), port: None, path: "/search/issues", query: Some("q=state:open+label:T-lang+label:final-comment-period+-label:finished-final-comment-period+repo:rust-lang/rfcs&sort=created&order=asc&per_page=100&page=1"), fragment: None }, headers: {"user-agent": "rust-lang-triagebot", "authorization": "token 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"} }
  69. 2022-03-22T23:59:31.837477Z DEBUG hyper::client::pool: reuse idle connection for ("https", api.github.com)
  70. 2022-03-22T23:59:31.837582Z DEBUG hyper::proto::h1::io: flushed 315 bytes
  71. 2022-03-22T23:59:32.046701Z DEBUG hyper::proto::h1::io: parsed 25 headers
  72. 2022-03-22T23:59:32.046757Z DEBUG hyper::proto::h1::conn: incoming body is content-length (3603 bytes)
  73. 2022-03-22T23:59:32.046883Z DEBUG reqwest::async_impl::client: response '200 OK' for https://api.github.com/search/issues?q=state:open+label:T-lang+label:final-comment-period+-label:finished-final-comment-period+repo:rust-lang/rfcs&sort=created&order=asc&per_page=100&page=1
  74. 2022-03-22T23:59:32.047398Z DEBUG hyper::proto::h1::conn: incoming body completed
  75. 2022-03-22T23:59:32.047502Z DEBUG hyper::client::pool: pooling idle connection for ("https", api.github.com)
  76. 2022-03-22T23:59:32.047771Z TRACE triagebot::github: get "https://api.github.com/repos/rust-lang/rfcs/issues?state=open&labels=T-lang,finished-final-comment-period&filter=all&sort=created&direction=asc&per_page=100"
  77. 2022-03-22T23:59:32.047891Z DEBUG triagebot::github: _send_req with RequestBuilder { method: GET, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.github.com")), port: None, path: "/repos/rust-lang/rfcs/issues", query: Some("state=open&labels=T-lang,finished-final-comment-period&filter=all&sort=created&direction=asc&per_page=100"), fragment: None }, headers: {"user-agent": "rust-lang-triagebot", "authorization": "token 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"} }
  78. 2022-03-22T23:59:32.048012Z DEBUG hyper::client::pool: reuse idle connection for ("https", api.github.com)
  79. 2022-03-22T23:59:32.048131Z DEBUG hyper::proto::h1::io: flushed 282 bytes
  80. 2022-03-22T23:59:32.186036Z DEBUG hyper::proto::h1::io: parsed 26 headers
  81. 2022-03-22T23:59:32.186153Z DEBUG hyper::proto::h1::conn: incoming body is content-length (2 bytes)
  82. 2022-03-22T23:59:32.186231Z DEBUG hyper::proto::h1::conn: incoming body completed
  83. 2022-03-22T23:59:32.186466Z DEBUG hyper::client::pool: pooling idle connection for ("https", api.github.com)
  84. 2022-03-22T23:59:32.186568Z DEBUG reqwest::async_impl::client: response '200 OK' for https://api.github.com/repos/rust-lang/rfcs/issues?state=open&labels=T-lang,finished-final-comment-period&filter=all&sort=created&direction=asc&per_page=100
  85. 2022-03-22T23:59:32.186795Z TRACE triagebot::github: get "https://api.github.com/repos/rust-lang/rust/issues?state=open&labels=T-lang,P-critical&filter=all&sort=created&direction=asc&per_page=100"
  86. 2022-03-22T23:59:32.186987Z DEBUG triagebot::github: _send_req with RequestBuilder { method: GET, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.github.com")), port: None, path: "/repos/rust-lang/rust/issues", query: Some("state=open&labels=T-lang,P-critical&filter=all&sort=created&direction=asc&per_page=100"), fragment: None }, headers: {"user-agent": "rust-lang-triagebot", "authorization": "token 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"} }
  87. 2022-03-22T23:59:32.187210Z DEBUG hyper::client::pool: reuse idle connection for ("https", api.github.com)
  88. 2022-03-22T23:59:32.187477Z DEBUG hyper::proto::h1::io: flushed 263 bytes
  89. 2022-03-22T23:59:33.035813Z DEBUG hyper::proto::h1::io: parsed 26 headers
  90. 2022-03-22T23:59:33.035877Z DEBUG hyper::proto::h1::conn: incoming body is content-length (2 bytes)
  91. 2022-03-22T23:59:33.035931Z DEBUG hyper::proto::h1::conn: incoming body completed
  92. 2022-03-22T23:59:33.036080Z DEBUG hyper::client::pool: pooling idle connection for ("https", api.github.com)
  93. 2022-03-22T23:59:33.036176Z DEBUG reqwest::async_impl::client: response '200 OK' for https://api.github.com/repos/rust-lang/rust/issues?state=open&labels=T-lang,P-critical&filter=all&sort=created&direction=asc&per_page=100
  94. 2022-03-22T23:59:33.036299Z TRACE triagebot::github: get "https://api.github.com/repos/rust-lang/rust/issues?state=open&labels=I-lang-nominated&filter=all&sort=created&direction=asc&per_page=100"
  95. 2022-03-22T23:59:33.036424Z DEBUG triagebot::github: _send_req with RequestBuilder { method: GET, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.github.com")), port: None, path: "/repos/rust-lang/rust/issues", query: Some("state=open&labels=I-lang-nominated&filter=all&sort=created&direction=asc&per_page=100"), fragment: None }, headers: {"user-agent": "rust-lang-triagebot", "authorization": "token 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"} }
  96. 2022-03-22T23:59:33.036557Z DEBUG hyper::client::pool: reuse idle connection for ("https", api.github.com)
  97. 2022-03-22T23:59:33.036681Z DEBUG hyper::proto::h1::io: flushed 262 bytes
  98. 2022-03-22T23:59:33.235842Z DEBUG hyper::proto::h1::io: parsed 26 headers
  99. 2022-03-22T23:59:33.235906Z DEBUG hyper::proto::h1::conn: incoming body is content-length (28872 bytes)
  100. 2022-03-22T23:59:33.236050Z DEBUG reqwest::async_impl::client: response '200 OK' for https://api.github.com/repos/rust-lang/rust/issues?state=open&labels=I-lang-nominated&filter=all&sort=created&direction=asc&per_page=100
  101. 2022-03-22T23:59:33.237705Z DEBUG hyper::proto::h1::conn: incoming body completed
  102. 2022-03-22T23:59:33.237816Z DEBUG hyper::client::pool: pooling idle connection for ("https", api.github.com)
  103. 2022-03-22T23:59:33.238516Z TRACE triagebot::github: get "https://api.github.com/search/issues?q=state:open+label:T-lang+label:proposed-final-comment-period+-label:finished-final-comment-period+repo:rust-lang/rust&sort=created&order=asc&per_page=100&page=1"
  104. 2022-03-22T23:59:33.238703Z DEBUG triagebot::github: _send_req with RequestBuilder { method: GET, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.github.com")), port: None, path: "/search/issues", query: Some("q=state:open+label:T-lang+label:proposed-final-comment-period+-label:finished-final-comment-period+repo:rust-lang/rust&sort=created&order=asc&per_page=100&page=1"), fragment: None }, headers: {"user-agent": "rust-lang-triagebot", "authorization": "token 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"} }
  105. 2022-03-22T23:59:33.238838Z DEBUG hyper::client::pool: reuse idle connection for ("https", api.github.com)
  106. 2022-03-22T23:59:33.238957Z DEBUG hyper::proto::h1::io: flushed 324 bytes
  107. 2022-03-22T23:59:33.535757Z DEBUG hyper::proto::h1::io: parsed 25 headers
  108. 2022-03-22T23:59:33.535852Z DEBUG hyper::proto::h1::conn: incoming body is content-length (38663 bytes)
  109. 2022-03-22T23:59:33.535990Z DEBUG reqwest::async_impl::client: response '200 OK' for https://api.github.com/search/issues?q=state:open+label:T-lang+label:proposed-final-comment-period+-label:finished-final-comment-period+repo:rust-lang/rust&sort=created&order=asc&per_page=100&page=1
  110. 2022-03-22T23:59:33.594002Z DEBUG hyper::proto::h1::conn: incoming body completed
  111. 2022-03-22T23:59:33.594187Z DEBUG hyper::client::pool: pooling idle connection for ("https", api.github.com)
  112. 2022-03-22T23:59:33.595047Z TRACE triagebot::github: get "https://api.github.com/search/issues?q=state:open+label:T-lang+label:final-comment-period+-label:finished-final-comment-period+repo:rust-lang/rust&sort=created&order=asc&per_page=100&page=1"
  113. 2022-03-22T23:59:33.595194Z DEBUG triagebot::github: _send_req with RequestBuilder { method: GET, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.github.com")), port: None, path: "/search/issues", query: Some("q=state:open+label:T-lang+label:final-comment-period+-label:finished-final-comment-period+repo:rust-lang/rust&sort=created&order=asc&per_page=100&page=1"), fragment: None }, headers: {"user-agent": "rust-lang-triagebot", "authorization": "token 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"} }
  114. 2022-03-22T23:59:33.595342Z DEBUG hyper::client::pool: reuse idle connection for ("https", api.github.com)
  115. 2022-03-22T23:59:33.595485Z DEBUG hyper::proto::h1::io: flushed 315 bytes
  116. 2022-03-22T23:59:33.859718Z DEBUG hyper::proto::h1::io: parsed 25 headers
  117. 2022-03-22T23:59:33.859818Z DEBUG hyper::proto::h1::conn: incoming body is content-length (16746 bytes)
  118. 2022-03-22T23:59:33.860004Z DEBUG reqwest::async_impl::client: response '200 OK' for https://api.github.com/search/issues?q=state:open+label:T-lang+label:final-comment-period+-label:finished-final-comment-period+repo:rust-lang/rust&sort=created&order=asc&per_page=100&page=1
  119. 2022-03-22T23:59:33.861624Z DEBUG hyper::proto::h1::conn: incoming body completed
  120. 2022-03-22T23:59:33.861758Z DEBUG hyper::client::pool: pooling idle connection for ("https", api.github.com)
  121. 2022-03-22T23:59:33.862394Z TRACE triagebot::github: get "https://api.github.com/repos/rust-lang/rust/issues?state=open&labels=T-lang,finished-final-comment-period&filter=all&sort=created&direction=asc&per_page=100"
  122. 2022-03-22T23:59:33.862561Z DEBUG triagebot::github: _send_req with RequestBuilder { method: GET, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.github.com")), port: None, path: "/repos/rust-lang/rust/issues", query: Some("state=open&labels=T-lang,finished-final-comment-period&filter=all&sort=created&direction=asc&per_page=100"), fragment: None }, headers: {"user-agent": "rust-lang-triagebot", "authorization": "token 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"} }
  123. 2022-03-22T23:59:33.862705Z DEBUG hyper::client::pool: reuse idle connection for ("https", api.github.com)
  124. 2022-03-22T23:59:33.862835Z DEBUG hyper::proto::h1::io: flushed 282 bytes
  125. 2022-03-22T23:59:34.616396Z DEBUG hyper::proto::h1::io: parsed 26 headers
  126. 2022-03-22T23:59:34.616501Z DEBUG hyper::proto::h1::conn: incoming body is content-length (90797 bytes)
  127. 2022-03-22T23:59:34.616639Z DEBUG reqwest::async_impl::client: response '200 OK' for https://api.github.com/repos/rust-lang/rust/issues?state=open&labels=T-lang,finished-final-comment-period&filter=all&sort=created&direction=asc&per_page=100
  128. 2022-03-22T23:59:34.688719Z DEBUG hyper::proto::h1::conn: incoming body completed
  129. 2022-03-22T23:59:34.688906Z DEBUG hyper::client::pool: pooling idle connection for ("https", api.github.com)
  130. 2022-03-22T23:59:34.690827Z TRACE triagebot::github: get "https://api.github.com/repos/rust-lang/reference/issues?state=open&labels=T-lang,P-critical&filter=all&sort=created&direction=asc&per_page=100"
  131. 2022-03-22T23:59:34.690964Z DEBUG triagebot::github: _send_req with RequestBuilder { method: GET, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.github.com")), port: None, path: "/repos/rust-lang/reference/issues", query: Some("state=open&labels=T-lang,P-critical&filter=all&sort=created&direction=asc&per_page=100"), fragment: None }, headers: {"user-agent": "rust-lang-triagebot", "authorization": "token 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"} }
  132. 2022-03-22T23:59:34.691121Z DEBUG hyper::client::pool: reuse idle connection for ("https", api.github.com)
  133. 2022-03-22T23:59:34.691241Z DEBUG hyper::proto::h1::io: flushed 268 bytes
  134. 2022-03-22T23:59:34.818262Z DEBUG hyper::proto::h1::io: parsed 26 headers
  135. 2022-03-22T23:59:34.818345Z DEBUG hyper::proto::h1::conn: incoming body is content-length (2 bytes)
  136. 2022-03-22T23:59:34.818401Z DEBUG hyper::proto::h1::conn: incoming body completed
  137. 2022-03-22T23:59:34.818534Z DEBUG hyper::client::pool: pooling idle connection for ("https", api.github.com)
  138. 2022-03-22T23:59:34.818585Z DEBUG reqwest::async_impl::client: response '200 OK' for https://api.github.com/repos/rust-lang/reference/issues?state=open&labels=T-lang,P-critical&filter=all&sort=created&direction=asc&per_page=100
  139. 2022-03-22T23:59:34.818706Z TRACE triagebot::github: get "https://api.github.com/repos/rust-lang/reference/issues?state=open&labels=I-lang-nominated&filter=all&sort=created&direction=asc&per_page=100"
  140. 2022-03-22T23:59:34.818833Z DEBUG triagebot::github: _send_req with RequestBuilder { method: GET, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.github.com")), port: None, path: "/repos/rust-lang/reference/issues", query: Some("state=open&labels=I-lang-nominated&filter=all&sort=created&direction=asc&per_page=100"), fragment: None }, headers: {"user-agent": "rust-lang-triagebot", "authorization": "token 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"} }
  141. 2022-03-22T23:59:34.818980Z DEBUG hyper::client::pool: reuse idle connection for ("https", api.github.com)
  142. 2022-03-22T23:59:34.819110Z DEBUG hyper::proto::h1::io: flushed 267 bytes
  143. 2022-03-22T23:59:34.991085Z DEBUG hyper::proto::h1::io: parsed 26 headers
  144. 2022-03-22T23:59:34.991144Z DEBUG hyper::proto::h1::conn: incoming body is content-length (5699 bytes)
  145. 2022-03-22T23:59:34.991270Z DEBUG reqwest::async_impl::client: response '200 OK' for https://api.github.com/repos/rust-lang/reference/issues?state=open&labels=I-lang-nominated&filter=all&sort=created&direction=asc&per_page=100
  146. 2022-03-22T23:59:34.991481Z DEBUG hyper::proto::h1::conn: incoming body completed
  147. 2022-03-22T23:59:34.991579Z DEBUG hyper::client::pool: pooling idle connection for ("https", api.github.com)
  148. 2022-03-22T23:59:34.991892Z TRACE triagebot::github: get "https://api.github.com/search/issues?q=state:open+label:T-lang+label:proposed-final-comment-period+-label:finished-final-comment-period+repo:rust-lang/reference&sort=created&order=asc&per_page=100&page=1"
  149. 2022-03-22T23:59:34.992016Z DEBUG triagebot::github: _send_req with RequestBuilder { method: GET, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.github.com")), port: None, path: "/search/issues", query: Some("q=state:open+label:T-lang+label:proposed-final-comment-period+-label:finished-final-comment-period+repo:rust-lang/reference&sort=created&order=asc&per_page=100&page=1"), fragment: None }, headers: {"user-agent": "rust-lang-triagebot", "authorization": "token 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"} }
  150. 2022-03-22T23:59:34.992139Z DEBUG hyper::client::pool: reuse idle connection for ("https", api.github.com)
  151. 2022-03-22T23:59:34.992245Z DEBUG hyper::proto::h1::io: flushed 329 bytes
  152. 2022-03-22T23:59:35.162279Z DEBUG hyper::proto::h1::io: parsed 25 headers
  153. 2022-03-22T23:59:35.162347Z DEBUG hyper::proto::h1::conn: incoming body is content-length (55 bytes)
  154. 2022-03-22T23:59:35.162486Z DEBUG reqwest::async_impl::client: response '200 OK' for https://api.github.com/search/issues?q=state:open+label:T-lang+label:proposed-final-comment-period+-label:finished-final-comment-period+repo:rust-lang/reference&sort=created&order=asc&per_page=100&page=1
  155. 2022-03-22T23:59:35.162597Z DEBUG hyper::proto::h1::conn: incoming body completed
  156. 2022-03-22T23:59:35.162702Z DEBUG hyper::client::pool: pooling idle connection for ("https", api.github.com)
  157. 2022-03-22T23:59:35.162898Z TRACE triagebot::github: get "https://api.github.com/search/issues?q=state:open+label:T-lang+label:final-comment-period+-label:finished-final-comment-period+repo:rust-lang/reference&sort=created&order=asc&per_page=100&page=1"
  158. 2022-03-22T23:59:35.163037Z DEBUG triagebot::github: _send_req with RequestBuilder { method: GET, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.github.com")), port: None, path: "/search/issues", query: Some("q=state:open+label:T-lang+label:final-comment-period+-label:finished-final-comment-period+repo:rust-lang/reference&sort=created&order=asc&per_page=100&page=1"), fragment: None }, headers: {"user-agent": "rust-lang-triagebot", "authorization": "token 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"} }
  159. 2022-03-22T23:59:35.163191Z DEBUG hyper::client::pool: reuse idle connection for ("https", api.github.com)
  160. 2022-03-22T23:59:35.163323Z DEBUG hyper::proto::h1::io: flushed 320 bytes
  161. 2022-03-22T23:59:35.385719Z DEBUG hyper::proto::h1::io: parsed 25 headers
  162. 2022-03-22T23:59:35.385771Z DEBUG hyper::proto::h1::conn: incoming body is content-length (55 bytes)
  163. 2022-03-22T23:59:35.385896Z DEBUG reqwest::async_impl::client: response '200 OK' for https://api.github.com/search/issues?q=state:open+label:T-lang+label:final-comment-period+-label:finished-final-comment-period+repo:rust-lang/reference&sort=created&order=asc&per_page=100&page=1
  164. 2022-03-22T23:59:35.385997Z DEBUG hyper::proto::h1::conn: incoming body completed
  165. 2022-03-22T23:59:35.386093Z DEBUG hyper::client::pool: pooling idle connection for ("https", api.github.com)
  166. 2022-03-22T23:59:35.386232Z TRACE triagebot::github: get "https://api.github.com/repos/rust-lang/reference/issues?state=open&labels=T-lang,finished-final-comment-period&filter=all&sort=created&direction=asc&per_page=100"
  167. 2022-03-22T23:59:35.386352Z DEBUG triagebot::github: _send_req with RequestBuilder { method: GET, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.github.com")), port: None, path: "/repos/rust-lang/reference/issues", query: Some("state=open&labels=T-lang,finished-final-comment-period&filter=all&sort=created&direction=asc&per_page=100"), fragment: None }, headers: {"user-agent": "rust-lang-triagebot", "authorization": "token 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"} }
  168. 2022-03-22T23:59:35.386473Z DEBUG hyper::client::pool: reuse idle connection for ("https", api.github.com)
  169. 2022-03-22T23:59:35.386581Z DEBUG hyper::proto::h1::io: flushed 287 bytes
  170. 2022-03-22T23:59:35.499908Z DEBUG hyper::proto::h1::io: parsed 26 headers
  171. 2022-03-22T23:59:35.499974Z DEBUG hyper::proto::h1::conn: incoming body is content-length (2 bytes)
  172. 2022-03-22T23:59:35.500035Z DEBUG hyper::proto::h1::conn: incoming body completed
  173. 2022-03-22T23:59:35.500206Z DEBUG hyper::client::pool: pooling idle connection for ("https", api.github.com)
  174. 2022-03-22T23:59:35.500254Z DEBUG reqwest::async_impl::client: response '200 OK' for https://api.github.com/repos/rust-lang/reference/issues?state=open&labels=T-lang,finished-final-comment-period&filter=all&sort=created&direction=asc&per_page=100
  175. 2022-03-22T23:59:35.500369Z TRACE triagebot::github: get "https://api.github.com/repos/rust-lang/lang-team/issues?state=open&labels=T-lang,P-critical&filter=all&sort=created&direction=asc&per_page=100"
  176. 2022-03-22T23:59:35.500487Z DEBUG triagebot::github: _send_req with RequestBuilder { method: GET, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.github.com")), port: None, path: "/repos/rust-lang/lang-team/issues", query: Some("state=open&labels=T-lang,P-critical&filter=all&sort=created&direction=asc&per_page=100"), fragment: None }, headers: {"user-agent": "rust-lang-triagebot", "authorization": "token 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"} }
  177. 2022-03-22T23:59:35.500605Z DEBUG hyper::client::pool: reuse idle connection for ("https", api.github.com)
  178. 2022-03-22T23:59:35.500712Z DEBUG hyper::proto::h1::io: flushed 268 bytes
  179. 2022-03-22T23:59:35.636113Z DEBUG hyper::proto::h1::io: parsed 26 headers
  180. 2022-03-22T23:59:35.636185Z DEBUG hyper::proto::h1::conn: incoming body is content-length (2 bytes)
  181. 2022-03-22T23:59:35.636265Z DEBUG hyper::proto::h1::conn: incoming body completed
  182. 2022-03-22T23:59:35.636403Z DEBUG hyper::client::pool: pooling idle connection for ("https", api.github.com)
  183. 2022-03-22T23:59:35.636456Z DEBUG reqwest::async_impl::client: response '200 OK' for https://api.github.com/repos/rust-lang/lang-team/issues?state=open&labels=T-lang,P-critical&filter=all&sort=created&direction=asc&per_page=100
  184. 2022-03-22T23:59:35.636573Z TRACE triagebot::github: get "https://api.github.com/repos/rust-lang/lang-team/issues?state=open&labels=I-lang-nominated&filter=all&sort=created&direction=asc&per_page=100"
  185. 2022-03-22T23:59:35.636693Z DEBUG triagebot::github: _send_req with RequestBuilder { method: GET, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.github.com")), port: None, path: "/repos/rust-lang/lang-team/issues", query: Some("state=open&labels=I-lang-nominated&filter=all&sort=created&direction=asc&per_page=100"), fragment: None }, headers: {"user-agent": "rust-lang-triagebot", "authorization": "token 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"} }
  186. 2022-03-22T23:59:35.636814Z DEBUG hyper::client::pool: reuse idle connection for ("https", api.github.com)
  187. 2022-03-22T23:59:35.636925Z DEBUG hyper::proto::h1::io: flushed 267 bytes
  188. 2022-03-22T23:59:35.761125Z DEBUG hyper::proto::h1::io: parsed 26 headers
  189. 2022-03-22T23:59:35.761223Z DEBUG hyper::proto::h1::conn: incoming body is content-length (2 bytes)
  190. 2022-03-22T23:59:35.761286Z DEBUG hyper::proto::h1::conn: incoming body completed
  191. 2022-03-22T23:59:35.761434Z DEBUG hyper::client::pool: pooling idle connection for ("https", api.github.com)
  192. 2022-03-22T23:59:35.761491Z DEBUG reqwest::async_impl::client: response '200 OK' for https://api.github.com/repos/rust-lang/lang-team/issues?state=open&labels=I-lang-nominated&filter=all&sort=created&direction=asc&per_page=100
  193. 2022-03-22T23:59:35.761619Z TRACE triagebot::github: get "https://api.github.com/search/issues?q=state:open+label:T-lang+label:proposed-final-comment-period+-label:finished-final-comment-period+repo:rust-lang/lang-team&sort=created&order=asc&per_page=100&page=1"
  194. 2022-03-22T23:59:35.761760Z DEBUG triagebot::github: _send_req with RequestBuilder { method: GET, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.github.com")), port: None, path: "/search/issues", query: Some("q=state:open+label:T-lang+label:proposed-final-comment-period+-label:finished-final-comment-period+repo:rust-lang/lang-team&sort=created&order=asc&per_page=100&page=1"), fragment: None }, headers: {"user-agent": "rust-lang-triagebot", "authorization": "token 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"} }
  195. 2022-03-22T23:59:35.761909Z DEBUG hyper::client::pool: reuse idle connection for ("https", api.github.com)
  196. 2022-03-22T23:59:35.762042Z DEBUG hyper::proto::h1::io: flushed 329 bytes
  197. 2022-03-22T23:59:35.935699Z DEBUG hyper::proto::h1::io: parsed 25 headers
  198. 2022-03-22T23:59:35.935765Z DEBUG hyper::proto::h1::conn: incoming body is content-length (55 bytes)
  199. 2022-03-22T23:59:35.935903Z DEBUG reqwest::async_impl::client: response '200 OK' for https://api.github.com/search/issues?q=state:open+label:T-lang+label:proposed-final-comment-period+-label:finished-final-comment-period+repo:rust-lang/lang-team&sort=created&order=asc&per_page=100&page=1
  200. 2022-03-22T23:59:35.936044Z DEBUG hyper::proto::h1::conn: incoming body completed
  201. 2022-03-22T23:59:35.936149Z DEBUG hyper::client::pool: pooling idle connection for ("https", api.github.com)
  202. 2022-03-22T23:59:35.936291Z TRACE triagebot::github: get "https://api.github.com/search/issues?q=state:open+label:T-lang+label:final-comment-period+-label:finished-final-comment-period+repo:rust-lang/lang-team&sort=created&order=asc&per_page=100&page=1"
  203. 2022-03-22T23:59:35.936422Z DEBUG triagebot::github: _send_req with RequestBuilder { method: GET, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.github.com")), port: None, path: "/search/issues", query: Some("q=state:open+label:T-lang+label:final-comment-period+-label:finished-final-comment-period+repo:rust-lang/lang-team&sort=created&order=asc&per_page=100&page=1"), fragment: None }, headers: {"user-agent": "rust-lang-triagebot", "authorization": "token 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"} }
  204. 2022-03-22T23:59:35.936555Z DEBUG hyper::client::pool: reuse idle connection for ("https", api.github.com)
  205. 2022-03-22T23:59:35.936672Z DEBUG hyper::proto::h1::io: flushed 320 bytes
  206. 2022-03-22T23:59:36.167068Z DEBUG hyper::proto::h1::io: parsed 25 headers
  207. 2022-03-22T23:59:36.167155Z DEBUG hyper::proto::h1::conn: incoming body is content-length (60814 bytes)
  208. 2022-03-22T23:59:36.167341Z DEBUG reqwest::async_impl::client: response '200 OK' for https://api.github.com/search/issues?q=state:open+label:T-lang+label:final-comment-period+-label:finished-final-comment-period+repo:rust-lang/lang-team&sort=created&order=asc&per_page=100&page=1
  209. 2022-03-22T23:59:36.286177Z DEBUG hyper::proto::h1::conn: incoming body completed
  210. 2022-03-22T23:59:36.286306Z DEBUG hyper::client::pool: pooling idle connection for ("https", api.github.com)
  211. 2022-03-22T23:59:36.287510Z TRACE triagebot::github: get "https://api.github.com/repos/rust-lang/lang-team/issues?state=open&labels=T-lang,finished-final-comment-period&filter=all&sort=created&direction=asc&per_page=100"
  212. 2022-03-22T23:59:36.287641Z DEBUG triagebot::github: _send_req with RequestBuilder { method: GET, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("api.github.com")), port: None, path: "/repos/rust-lang/lang-team/issues", query: Some("state=open&labels=T-lang,finished-final-comment-period&filter=all&sort=created&direction=asc&per_page=100"), fragment: None }, headers: {"user-agent": "rust-lang-triagebot", "authorization": "token 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"} }
  213. 2022-03-22T23:59:36.287775Z DEBUG hyper::client::pool: reuse idle connection for ("https", api.github.com)
  214. 2022-03-22T23:59:36.287895Z DEBUG hyper::proto::h1::io: flushed 287 bytes
  215. 2022-03-22T23:59:36.397536Z DEBUG hyper::proto::h1::io: parsed 26 headers
  216. 2022-03-22T23:59:36.397626Z DEBUG hyper::proto::h1::conn: incoming body is content-length (2 bytes)
  217. 2022-03-22T23:59:36.397700Z DEBUG hyper::proto::h1::conn: incoming body completed
  218. 2022-03-22T23:59:36.397891Z DEBUG hyper::client::pool: pooling idle connection for ("https", api.github.com)
  219. 2022-03-22T23:59:36.397956Z DEBUG reqwest::async_impl::client: response '200 OK' for https://api.github.com/repos/rust-lang/lang-team/issues?state=open&labels=T-lang,finished-final-comment-period&filter=all&sort=created&direction=asc&per_page=100
  220. 2022-03-22T23:59:36.398738Z DEBUG reqwest::connect: starting new connection: https://rfcbot.rs/
  221. 2022-03-22T23:59:36.398876Z DEBUG hyper::client::connect::dns: resolving host="rfcbot.rs"
  222. 2022-03-22T23:59:36.400065Z DEBUG hyper::client::connect::http: connecting to 172.67.198.110:443
  223. 2022-03-22T23:59:36.455138Z DEBUG hyper::client::connect::http: connected to 172.67.198.110:443
  224. 2022-03-22T23:59:36.645544Z DEBUG hyper::proto::h1::io: flushed 55 bytes
  225. 2022-03-22T23:59:36.935632Z DEBUG hyper::proto::h1::io: parsed 12 headers
  226. 2022-03-22T23:59:36.935704Z DEBUG hyper::proto::h1::conn: incoming body is content-length (133526 bytes)
  227. 2022-03-22T23:59:36.935853Z DEBUG reqwest::async_impl::client: response '200 OK' for https://rfcbot.rs/api/all
  228. 2022-03-22T23:59:36.939516Z DEBUG hyper::proto::h1::conn: incoming body completed
  229. res: [
  230. FullFCP {
  231. fcp: FCP {
  232. id: 1959,
  233. fk_issue: 1382166,
  234. fk_initiator: 77424,
  235. fk_initiating_comment: 896587182,
  236. disposition: Some(
  237. "merge",
  238. ),
  239. fk_bot_tracking_comment: 896587191,
  240. fcp_start: None,
  241. fcp_closed: false,
  242. },
  243. reviews: [
  244. Review {
  245. reviewer: Reviewer {
  246. id: 77424,
  247. login: "eddyb",
  248. },
  249. approved: true,
  250. },
  251. Review {
  252. reviewer: Reviewer {
  253. id: 155238,
  254. login: "nikomatsakis",
  255. },
  256. approved: true,
  257. },
  258. Review {
  259. reviewer: Reviewer {
  260. id: 173127,
  261. login: "pnkfelix",
  262. },
  263. approved: false,
  264. },
  265. Review {
  266. reviewer: Reviewer {
  267. id: 332036,
  268. login: "oli-obk",
  269. },
  270. approved: true,
  271. },
  272. Review {
  273. reviewer: Reviewer {
  274. id: 679122,
  275. login: "nagisa",
  276. },
  277. approved: true,
  278. },
  279. Review {
  280. reviewer: Reviewer {
  281. id: 831192,
  282. login: "wesleywiser",
  283. },
  284. approved: true,
  285. },
  286. Review {
  287. reviewer: Reviewer {
  288. id: 1295100,
  289. login: "davidtwco",
  290. },
  291. approved: true,
  292. },
  293. Review {
  294. reviewer: Reviewer {
  295. id: 1408859,
  296. login: "Aaron1011",
  297. },
  298. approved: false,
  299. },
  300. Review {
  301. reviewer: Reviewer {
  302. id: 1606434,
  303. login: "estebank",
  304. },
  305. approved: true,
  306. },
  307. Review {
  308. reviewer: Reviewer {
  309. id: 1825894,
  310. login: "michaelwoerister",
  311. },
  312. approved: true,
  313. },
  314. Review {
  315. reviewer: Reviewer {
  316. id: 5751617,
  317. login: "petrochenkov",
  318. },
  319. approved: true,
  320. },
  321. Review {
  322. reviewer: Reviewer {
  323. id: 20113453,
  324. login: "matthewjasper",
  325. },
  326. approved: true,
  327. },
  328. Review {
  329. reviewer: Reviewer {
  330. id: 29864074,
  331. login: "lcnr",
  332. },
  333. approved: true,
  334. },
  335. ],
  336. issue: FCPIssue {
  337. id: 1382166,
  338. number: 3161,
  339. fk_milestone: None,
  340. fk_user: 77424,
  341. fk_assignee: None,
  342. open: true,
  343. is_pull_request: true,
  344. title: "[RFC2603] Extend `<const>` to include `str` and structural constants.",
  345. body: "I'm not sure what the process for amending RFCs is, but here goes nothing:\r\n\r\nThis is one of the last pieces of the `v0` mangling, namely arbitrary constant values (for the full `const` generics feature). This has been tracked by https://github.com/rust-lang/rust/issues/61486, and there's some discussion there.\r\n\r\nThe main takeaway is that the mangling is *structural* (ADT-like tree with integer-like leaves), matching the structural equality that type-level constants are *required* to follow, for soundness reasons.\r\n\r\nAccompanying implementation PRs:\r\n* mangling: https://github.com/rust-lang/rust/pull/87194\r\n* demangling: https://github.com/alexcrichton/rustc-demangle/pull/55\r\n\r\nThe summary of the added forms is:\r\n* `e`: `str`, followed by bytes encoded as two hex nibbles per byte\r\n* `R`/`Q`: `&`/`&mut`, followed by the pointee value\r\n* `A...E`: `[...]`, containing any number of element values\r\n* `T...E`: `(...)`, containing any number of field values\r\n* `V`: named variant/`struct`, followed by the constructor path and one of:\r\n * `U`: unit variant/`struct` (e.g. `None`)\r\n * `T...E`: tuple variant/`struct` (e.g. `Some(...)`), containing any number of field values\r\n * `S...E`: struct-like variant/`struct` (e.g. `Foo { ... }`), containing any number of (disambiguated-)identifier-prefixed (i.e. named) field values\r\n\r\n<hr/>\r\n\r\nEven if there may be constants in the future not covered by these forms, we can rely on the nominal `V` form to encode all sorts of pseudo-paths (while waiting for demanglers to support dedicated manglings), such as these *hypothetical* examples:\r\n* `const::<SomeType>::h54723863eb99e89f` (hashed constant, masquerading as unit `struct`)\r\n* `core::mem::transmute::<usize, *mut T>(1)` (function call, masquerading as tuple `struct`)\r\n\r\n<hr/>\r\n\r\ncc @michaelwoerister",
  346. locked: false,
  347. closed_at: None,
  348. created_at: Some(
  349. "2021-08-10T18:33:26",
  350. ),
  351. updated_at: Some(
  352. "2022-03-02T08:37:11",
  353. ),
  354. labels: [
  355. "T-compiler",
  356. "proposed-final-comment-period",
  357. "disposition-merge",
  358. ],
  359. repository: "rust-lang/rfcs",
  360. },
  361. status_comment: StatusComment {
  362. id: 896587191,
  363. fk_issue: 1382166,
  364. fk_user: 20760818,
  365. body: "Team member @eddyb has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [ ] @Aaron1011\n* [x] @davidtwco\n* [x] @eddyb\n* [x] @estebank\n* [x] @lcnr\n* [x] @matthewjasper\n* [x] @michaelwoerister\n* [x] @nagisa\n* [x] @nikomatsakis\n* [x] @oli-obk\n* [x] @petrochenkov\n* [ ] @pnkfelix\n* [x] @wesleywiser\n\nConcerns:\n\n* field names are unnecessary (https://github.com/rust-lang/rfcs/pull/3161#issuecomment-896965971)\n* unit structs are unnecessary (https://github.com/rust-lang/rfcs/pull/3161#issuecomment-896965971)\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  366. created_at: "2021-08-11T07:56:26",
  367. updated_at: Some(
  368. "2021-09-17T13:49:08",
  369. ),
  370. repository: "rust-lang/rfcs",
  371. },
  372. },
  373. FullFCP {
  374. fcp: FCP {
  375. id: 2030,
  376. fk_issue: 1422097,
  377. fk_initiator: 783247,
  378. fk_initiating_comment: 927177702,
  379. disposition: Some(
  380. "merge",
  381. ),
  382. fk_bot_tracking_comment: 927177703,
  383. fcp_start: None,
  384. fcp_closed: false,
  385. },
  386. reviews: [
  387. Review {
  388. reviewer: Reviewer {
  389. id: 162737,
  390. login: "joshtriplett",
  391. },
  392. approved: true,
  393. },
  394. Review {
  395. reviewer: Reviewer {
  396. id: 278509,
  397. login: "Amanieu",
  398. },
  399. approved: true,
  400. },
  401. Review {
  402. reviewer: Reviewer {
  403. id: 456674,
  404. login: "BurntSushi",
  405. },
  406. approved: false,
  407. },
  408. Review {
  409. reviewer: Reviewer {
  410. id: 783247,
  411. login: "m-ou-se",
  412. },
  413. approved: true,
  414. },
  415. Review {
  416. reviewer: Reviewer {
  417. id: 1940490,
  418. login: "dtolnay",
  419. },
  420. approved: true,
  421. },
  422. Review {
  423. reviewer: Reviewer {
  424. id: 1993852,
  425. login: "yaahc",
  426. },
  427. approved: true,
  428. },
  429. ],
  430. issue: FCPIssue {
  431. id: 1422097,
  432. number: 89238,
  433. fk_milestone: None,
  434. fk_user: 46493976,
  435. fk_assignee: Some(
  436. 783247,
  437. ),
  438. open: true,
  439. is_pull_request: true,
  440. title: "deprecate f{32,64}::DIGITS",
  441. body: "These constants are misleading: the number of significant digits\r\nvaries for each value that these floating point numbers may encode\r\nbut some programmers are taking them directly as an upper bound.\r\nThis is wrong and is leading to programmers creating applications\r\nthat directly mislead other users about their meaning, having\r\na negative ecosystem-wide impact on mathematical accuracy.\r\n\r\nTo contain the damage, deprecate them without replacement.\r\nIt is hoped this will force programmers to reevaluate their use.\r\n\r\nCloses https://github.com/rust-lang/rust/issues/89106.\r\nThis problem may seem trivial but instructions to alter valid float values being generated by an otherwise highly-regarded source (Clippy) is a bad result. While a PR is open against rust-clippy to fix this behavior, this pattern may have arisen in non-indexed code, even though it seems to be uncommon. As the constants don't seem to be greatly used in practice, while the damage they can do if misused is high, it seems reasonable to take this path.",
  442. locked: false,
  443. closed_at: None,
  444. created_at: Some(
  445. "2021-09-25T00:09:00",
  446. ),
  447. updated_at: Some(
  448. "2022-02-04T20:05:39",
  449. ),
  450. labels: [
  451. "T-libs-api",
  452. "S-waiting-on-author",
  453. "proposed-final-comment-period",
  454. "disposition-merge",
  455. "needs-fcp",
  456. "A-floating-point",
  457. ],
  458. repository: "rust-lang/rust",
  459. },
  460. status_comment: StatusComment {
  461. id: 927177703,
  462. fk_issue: 1422097,
  463. fk_user: 20760818,
  464. body: "Team member @m-ou-se has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Amanieu\n* [ ] @BurntSushi\n* [x] @dtolnay\n* [x] @joshtriplett\n* [x] @m-ou-se\n* [x] @yaahc\n\nConcerns:\n\n* detailed explanation (https://github.com/rust-lang/rust/pull/89238#issuecomment-929701400)\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  465. created_at: "2021-09-25T20:17:22",
  466. updated_at: Some(
  467. "2022-01-19T20:35:25",
  468. ),
  469. repository: "rust-lang/rust",
  470. },
  471. },
  472. FullFCP {
  473. fcp: FCP {
  474. id: 2046,
  475. fk_issue: 1417900,
  476. fk_initiator: 64996,
  477. fk_initiating_comment: 934891723,
  478. disposition: Some(
  479. "merge",
  480. ),
  481. fk_bot_tracking_comment: 934891739,
  482. fcp_start: None,
  483. fcp_closed: false,
  484. },
  485. reviews: [
  486. Review {
  487. reviewer: Reviewer {
  488. id: 43198,
  489. login: "ehuss",
  490. },
  491. approved: false,
  492. },
  493. Review {
  494. reviewer: Reviewer {
  495. id: 64996,
  496. login: "alexcrichton",
  497. },
  498. approved: true,
  499. },
  500. Review {
  501. reviewer: Reviewer {
  502. id: 162737,
  503. login: "joshtriplett",
  504. },
  505. approved: false,
  506. },
  507. Review {
  508. reviewer: Reviewer {
  509. id: 3709504,
  510. login: "Eh2406",
  511. },
  512. approved: true,
  513. },
  514. ],
  515. issue: FCPIssue {
  516. id: 1417900,
  517. number: 9925,
  518. fk_milestone: None,
  519. fk_user: 44697459,
  520. fk_assignee: Some(
  521. 3709504,
  522. ),
  523. open: true,
  524. is_pull_request: true,
  525. title: "Adds backoff mechanism for retry",
  526. body: "Addresses #9882 \r\n\r\nAdds an exponential backoff mechanism for network retries.\r\n\r\nAdds 2 additional `net` configuration:\r\n- `retry-max-time`: Upper bound for exponential backoff time\r\n- `retry-delay`: If present, override exponential backoff time with constant delay time (in second)\r\n\r\n---\r\n\r\nWould like to have some opinion on the PR first, before continuing.\r\nAlso, I'm not sure how to do time/duration-based testing in Rust, so I'm not sure how to devise a test for this.",
  527. locked: false,
  528. closed_at: None,
  529. created_at: Some(
  530. "2021-09-20T10:46:25",
  531. ),
  532. updated_at: Some(
  533. "2022-02-24T21:25:06",
  534. ),
  535. labels: [
  536. "T-cargo",
  537. "proposed-final-comment-period",
  538. "disposition-merge",
  539. "S-waiting-on-author",
  540. ],
  541. repository: "rust-lang/cargo",
  542. },
  543. status_comment: StatusComment {
  544. id: 934891739,
  545. fk_issue: 1417900,
  546. fk_user: 20760818,
  547. body: "Team member @alexcrichton has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Eh2406\n* [x] @alexcrichton\n* [ ] @ehuss\n* [ ] @joshtriplett\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  548. created_at: "2021-10-05T21:45:57",
  549. updated_at: Some(
  550. "2021-10-05T22:12:37",
  551. ),
  552. repository: "rust-lang/cargo",
  553. },
  554. },
  555. FullFCP {
  556. fcp: FCP {
  557. id: 2082,
  558. fk_issue: 1450565,
  559. fk_initiator: 162737,
  560. fk_initiating_comment: 955599587,
  561. disposition: Some(
  562. "merge",
  563. ),
  564. fk_bot_tracking_comment: 955599591,
  565. fcp_start: None,
  566. fcp_closed: false,
  567. },
  568. reviews: [
  569. Review {
  570. reviewer: Reviewer {
  571. id: 162737,
  572. login: "joshtriplett",
  573. },
  574. approved: true,
  575. },
  576. Review {
  577. reviewer: Reviewer {
  578. id: 278509,
  579. login: "Amanieu",
  580. },
  581. approved: true,
  582. },
  583. Review {
  584. reviewer: Reviewer {
  585. id: 456674,
  586. login: "BurntSushi",
  587. },
  588. approved: false,
  589. },
  590. Review {
  591. reviewer: Reviewer {
  592. id: 783247,
  593. login: "m-ou-se",
  594. },
  595. approved: true,
  596. },
  597. Review {
  598. reviewer: Reviewer {
  599. id: 1940490,
  600. login: "dtolnay",
  601. },
  602. approved: true,
  603. },
  604. Review {
  605. reviewer: Reviewer {
  606. id: 1993852,
  607. login: "yaahc",
  608. },
  609. approved: true,
  610. },
  611. ],
  612. issue: FCPIssue {
  613. id: 1450565,
  614. number: 90291,
  615. fk_milestone: None,
  616. fk_user: 2838446,
  617. fk_assignee: Some(
  618. 103023,
  619. ),
  620. open: true,
  621. is_pull_request: true,
  622. title: "Loosen the bound on the Debug implementation of Weak.",
  623. body: "Both `rc::Weak<T>` and `sync::Weak<T>` currently require `T: Debug` in their own `Debug` implementations, but they don't currently use it; they only ever print a fixed string.\r\n\r\nA general implementation of Debug for Weak that actually attempts to upgrade and rely on the contents is unlikely in the future because it may have unbounded recursion in the presence of reference cycles, which Weak is commonly used in. (This was the justification for why the current implementation [was implemented the way it is](https://github.com/rust-lang/rust/pull/19388/commits/f0976e2cf3f6b0027f118b791e0888b29fbb41a7)).\r\n\r\nWhen I brought it up [on the forum](https://internals.rust-lang.org/t/could-the-bound-on-weak-debug-be-relaxed/15504), it was suggested that, even if an implementation is specialized in the future that relies on the data stored within the Weak, it would likely rely on specialization anyway, and could therefore easily specialize on the Debug bound as well.",
  624. locked: false,
  625. closed_at: None,
  626. created_at: Some(
  627. "2021-10-26T01:51:05",
  628. ),
  629. updated_at: Some(
  630. "2022-03-16T14:34:33",
  631. ),
  632. labels: [
  633. "T-libs-api",
  634. "S-waiting-on-review",
  635. "proposed-final-comment-period",
  636. "disposition-merge",
  637. "needs-fcp",
  638. ],
  639. repository: "rust-lang/rust",
  640. },
  641. status_comment: StatusComment {
  642. id: 955599591,
  643. fk_issue: 1450565,
  644. fk_user: 20760818,
  645. body: "Team member @joshtriplett has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Amanieu\n* [ ] @BurntSushi\n* [x] @dtolnay\n* [x] @joshtriplett\n* [x] @m-ou-se\n* [x] @yaahc\n\nConcerns:\n\n* better-use-case (https://github.com/rust-lang/rust/pull/90291#issuecomment-956196380)\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  646. created_at: "2021-10-30T22:04:41",
  647. updated_at: Some(
  648. "2022-03-09T17:38:17",
  649. ),
  650. repository: "rust-lang/rust",
  651. },
  652. },
  653. FullFCP {
  654. fcp: FCP {
  655. id: 2119,
  656. fk_issue: 1491608,
  657. fk_initiator: 37223377,
  658. fk_initiating_comment: 996996449,
  659. disposition: Some(
  660. "merge",
  661. ),
  662. fk_bot_tracking_comment: 996996461,
  663. fcp_start: None,
  664. fcp_closed: false,
  665. },
  666. reviews: [
  667. Review {
  668. reviewer: Reviewer {
  669. id: 81079,
  670. login: "Nemo157",
  671. },
  672. approved: true,
  673. },
  674. Review {
  675. reviewer: Reviewer {
  676. id: 220205,
  677. login: "jsha",
  678. },
  679. approved: true,
  680. },
  681. Review {
  682. reviewer: Reviewer {
  683. id: 1617736,
  684. login: "Manishearth",
  685. },
  686. approved: true,
  687. },
  688. Review {
  689. reviewer: Reviewer {
  690. id: 3050060,
  691. login: "GuillaumeGomez",
  692. },
  693. approved: true,
  694. },
  695. Review {
  696. reviewer: Reviewer {
  697. id: 7189418,
  698. login: "ollie27",
  699. },
  700. approved: false,
  701. },
  702. Review {
  703. reviewer: Reviewer {
  704. id: 13342132,
  705. login: "CraftSpider",
  706. },
  707. approved: true,
  708. },
  709. Review {
  710. reviewer: Reviewer {
  711. id: 23638587,
  712. login: "jyn514",
  713. },
  714. approved: false,
  715. },
  716. Review {
  717. reviewer: Reviewer {
  718. id: 37223377,
  719. login: "camelid",
  720. },
  721. approved: true,
  722. },
  723. ],
  724. issue: FCPIssue {
  725. id: 1491608,
  726. number: 91759,
  727. fk_milestone: None,
  728. fk_user: 37223377,
  729. fk_assignee: Some(
  730. 3050060,
  731. ),
  732. open: true,
  733. is_pull_request: false,
  734. title: "rustdoc: \"Namespace\" user-written Markdown headings",
  735. body: "Tracking issue for @jsha's idea mentioned [here](https://rust-lang.zulipchat.com/#narrow/stream/266220-rustdoc/topic/DOM.20id.20tidy.20check/near/264504935). What follows is @jsha's summary of the idea:\r\n\r\nWhen markdown like `# Examples` is processed, it usually turns into something like `<a href=\"#examples\" id=\"examples\">`. This is useful so you can click on the heading and get a link that will take someone else to that precise part of the docs.\r\n\r\nSince the markdown in rustdoc is user-generated, those anchor ids may conflict with Rustdoc's own anchor ids. They may also conflict with other markdown sections within the same doc page. For instance, see:\r\n\r\nhttps://doc.rust-lang.org/nightly/std/string/struct.String.html#examples\r\nhttps://doc.rust-lang.org/nightly/std/string/struct.String.html#examples-1\r\nhttps://doc.rust-lang.org/nightly/std/string/struct.String.html#examples-2\r\n\r\nRight now we disambiguate these ids by added a number at the end. However, it would be better to disambiguate them by namespacing. Specifically, each time we render markdown we should provide a \"prefix\", and all IDs in the generated HTML should start with that prefix. In general a convenient and sensible choice for this prefix would be the id of the immediately preceding heading. So the examples linked above might become `#top.examples`, `#method.new.examples`, and `#method.from_utf8.examples`.\r\n\r\nThis has three advantages:\r\n - It systematically removes most of the cases of id conflict.\r\n - It makes anchor links more meaningful when someone reads the URL.\r\n - It makes anchor links stable across revisions.\r\n\r\nThis is a 99% solution, not a 100% one. Users can author HTML directly in their markdown, for instance `<div id=\"foo\">`. But we are okay with letting the conflicts happen in those rare cases.",
  736. locked: false,
  737. closed_at: None,
  738. created_at: Some(
  739. "2021-12-10T21:28:12",
  740. ),
  741. updated_at: Some(
  742. "2022-01-23T03:43:18",
  743. ),
  744. labels: [
  745. "T-rustdoc",
  746. "C-enhancement",
  747. "proposed-final-comment-period",
  748. "disposition-merge",
  749. "A-rustdoc-ui",
  750. ],
  751. repository: "rust-lang/rust",
  752. },
  753. status_comment: StatusComment {
  754. id: 996996461,
  755. fk_issue: 1491608,
  756. fk_user: 20760818,
  757. body: "Team member @camelid has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @CraftSpider\n* [x] @GuillaumeGomez\n* [x] @Manishearth\n* [x] @Nemo157\n* [x] @camelid\n* [x] @jsha\n* [ ] @jyn514\n* [ ] @ollie27\n\nConcerns:\n\n* ~~anchor formatting~~ resolved by https://github.com/rust-lang/rust/issues/91759#issuecomment-1012496534\n* ~~breakage~~ resolved by https://github.com/rust-lang/rust/issues/91759#issuecomment-1012548149\n* ~~impls~~ resolved by https://github.com/rust-lang/rust/issues/91759#issuecomment-997085268\n* simplify (https://github.com/rust-lang/rust/issues/91759#issuecomment-1019004268)\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  758. created_at: "2021-12-17T19:56:24",
  759. updated_at: Some(
  760. "2022-01-22T01:19:10",
  761. ),
  762. repository: "rust-lang/rust",
  763. },
  764. },
  765. FullFCP {
  766. fcp: FCP {
  767. id: 2160,
  768. fk_issue: 1492330,
  769. fk_initiator: 1993852,
  770. fk_initiating_comment: 1026130074,
  771. disposition: Some(
  772. "merge",
  773. ),
  774. fk_bot_tracking_comment: 1026130086,
  775. fcp_start: None,
  776. fcp_closed: false,
  777. },
  778. reviews: [
  779. Review {
  780. reviewer: Reviewer {
  781. id: 162737,
  782. login: "joshtriplett",
  783. },
  784. approved: false,
  785. },
  786. Review {
  787. reviewer: Reviewer {
  788. id: 278509,
  789. login: "Amanieu",
  790. },
  791. approved: true,
  792. },
  793. Review {
  794. reviewer: Reviewer {
  795. id: 456674,
  796. login: "BurntSushi",
  797. },
  798. approved: false,
  799. },
  800. Review {
  801. reviewer: Reviewer {
  802. id: 783247,
  803. login: "m-ou-se",
  804. },
  805. approved: false,
  806. },
  807. Review {
  808. reviewer: Reviewer {
  809. id: 1940490,
  810. login: "dtolnay",
  811. },
  812. approved: false,
  813. },
  814. Review {
  815. reviewer: Reviewer {
  816. id: 1993852,
  817. login: "yaahc",
  818. },
  819. approved: true,
  820. },
  821. ],
  822. issue: FCPIssue {
  823. id: 1492330,
  824. number: 91789,
  825. fk_milestone: None,
  826. fk_user: 9161438,
  827. fk_assignee: None,
  828. open: true,
  829. is_pull_request: false,
  830. title: "Tracking Issue for try_reserve method on more containers",
  831. body: "<!--\r\nNOTE: For library features, please use the \"Library Tracking Issue\" template instead.\r\n\r\nThank you for creating a tracking issue! 📜 Tracking issues are for tracking a\r\nfeature from implementation to stabilisation. Make sure to include the relevant\r\nRFC for the feature if it has one. Otherwise provide a short summary of the\r\nfeature and link any relevant PRs or issues, and remove any sections that are\r\nnot relevant to the feature.\r\n\r\nRemember to add team labels to the tracking issue.\r\nFor a language team feature, this would e.g., be `T-lang`.\r\nSuch a feature should also be labeled with e.g., `F-my_feature`.\r\nThis label is used to associate issues (e.g., bugs and design questions) to the feature.\r\n-->\r\n\r\nThis is another tracking issue for the try_reserve part of the RFC \"fallible collection allocation\" (rust-lang/rfcs#2116).\r\nThe feature gate for the issue is `#![feature(try_reserve_2)]`.\r\n\r\nThe feature is a follow-up to #48043. Since `try_reserve` was stabilized in 1.57.0, we may need a new feature gate for further `try_reserve` implementation on more containers.\r\n\r\n### About tracking issues\r\n\r\nTracking issues are used to record the overall progress of implementation.\r\nThey are also used as hubs connecting to other relevant issues, e.g., bugs or open design questions.\r\nA tracking issue is however *not* meant for large scale discussion, questions, or bug reports about a feature.\r\nInstead, open a dedicated issue for the specific matter and add the relevant feature gate label.\r\n\r\n### Steps\r\n<!--\r\nInclude each step required to complete the feature. Typically this is a PR\r\nimplementing a feature, followed by a PR that stabilises the feature. However\r\nfor larger features an implementation could be broken up into multiple PRs.\r\n-->\r\n\r\n- [x] Implement `try_reserve` and `try_reserve_exact` on `BinaryHeap` #91529 \r\n- [x] Implement `try_reserve` and `try_reserve_exact` on `PathBuf` #92513\r\n- [x] Implement `try_reserve` and `try_reserve_exact` on `OsString` #92338 \r\n- [ ] Adjust documentation ([see instructions on rustc-dev-guide][doc-guide])\r\n- [ ] Stabilization PR ([see instructions on rustc-dev-guide][stabilization-guide])\r\n\r\n[stabilization-guide]: https://rustc-dev-guide.rust-lang.org/stabilization_guide.html#stabilization-pr\r\n[doc-guide]: https://rustc-dev-guide.rust-lang.org/stabilization_guide.html#documentation-prs\r\n\r\nIf any containers were missing, please comment in the issue, and I will add it to the list.\r\n\r\n### Unresolved Questions\r\n<!--\r\nInclude any open questions that need to be answered before the feature can be\r\nstabilised.\r\n-->\r\n\r\n\r\n### Implementation history\r\n\r\n<!--\r\nInclude a list of all the PRs that were involved in implementing the feature.\r\n-->\r\n\r\n#91529 \r\n#92338 \r\n#92513\r\n",
  832. locked: false,
  833. closed_at: None,
  834. created_at: Some(
  835. "2021-12-11T14:40:29",
  836. ),
  837. updated_at: Some(
  838. "2022-03-13T17:47:25",
  839. ),
  840. labels: [
  841. "T-libs-api",
  842. "proposed-final-comment-period",
  843. "C-tracking-issue",
  844. "disposition-merge",
  845. ],
  846. repository: "rust-lang/rust",
  847. },
  848. status_comment: StatusComment {
  849. id: 1026130086,
  850. fk_issue: 1492330,
  851. fk_user: 20760818,
  852. body: "Team member @yaahc has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Amanieu\n* [ ] @BurntSushi\n* [ ] @dtolnay\n* [ ] @joshtriplett\n* [ ] @m-ou-se\n* [x] @yaahc\n\nConcerns:\n\n* do we need better docs about what the argument value means (not bytes) (https://github.com/rust-lang/rust/issues/91789#issuecomment-1027257918)\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  853. created_at: "2022-01-31T19:28:08",
  854. updated_at: Some(
  855. "2022-02-16T21:01:10",
  856. ),
  857. repository: "rust-lang/rust",
  858. },
  859. },
  860. FullFCP {
  861. fcp: FCP {
  862. id: 2172,
  863. fk_issue: 1539703,
  864. fk_initiator: 64996,
  865. fk_initiating_comment: 1035052340,
  866. disposition: Some(
  867. "merge",
  868. ),
  869. fk_bot_tracking_comment: 1035052370,
  870. fcp_start: None,
  871. fcp_closed: false,
  872. },
  873. reviews: [
  874. Review {
  875. reviewer: Reviewer {
  876. id: 43198,
  877. login: "ehuss",
  878. },
  879. approved: true,
  880. },
  881. Review {
  882. reviewer: Reviewer {
  883. id: 64996,
  884. login: "alexcrichton",
  885. },
  886. approved: true,
  887. },
  888. Review {
  889. reviewer: Reviewer {
  890. id: 162737,
  891. login: "joshtriplett",
  892. },
  893. approved: false,
  894. },
  895. Review {
  896. reviewer: Reviewer {
  897. id: 3709504,
  898. login: "Eh2406",
  899. },
  900. approved: true,
  901. },
  902. ],
  903. issue: FCPIssue {
  904. id: 1539703,
  905. number: 10344,
  906. fk_milestone: None,
  907. fk_user: 14314532,
  908. fk_assignee: Some(
  909. 64996,
  910. ),
  911. open: true,
  912. is_pull_request: true,
  913. title: "Auto-switch to multi-sources vendor directory layout",
  914. body: "<!-- homu-ignore:start -->\r\n### What does this PR try to resolve?\r\n\r\n`cargo-vendor` has been broken for a while, there is no a clear alternative way to solve the situation described in #10310. This PR tries to do what `--no-merge-sources` does but automatically switching to multi-sources layout instead of introducing the flag. (see https://github.com/rust-lang/cargo/pull/10344#pullrequestreview-868113795 and https://github.com/rust-lang/cargo/pull/10344#issuecomment-1032994506)\r\n\r\nFixes #10310\r\n\r\n### How should we test and review this PR?\r\n\r\nPart of the logic is copied from https://github.com/alexcrichton/cargo-vendor.\r\n\r\nSeveral tests are updated and added:\r\n\r\n- 🆕 `vendor::duplicate_version_from_multiple_sources`: Auto-switch between non-merged and merged sources.\r\n- ❌ `vendor::git_duplicate`: Removed. cargo-vendor now can auto-switch.\r\n- ❌ `vendor::vendor_sample_config`: Merged into `vendor::vendor_simple`.\r\n\r\n### Additional information\r\n\r\nThere are somethings I am uncertain:\r\n\r\n- [x] When switching between non-merged and merged sources. `cargo-vendor` removes the entire vendor directory. Should cargo emit a warning or just error out and tell user the incompatibility between merged and non-merged? Generally removing the vendor dir should not be a destructive operation but thing not always goes as we thought 😆 \r\n**Solved**: See https://github.com/rust-lang/cargo/pull/10344#discussion_r795852617\r\n- [x] The `cargo::util::short_hash` is not compatible with [the one in cargo-vendor]. I personally prefer to use `util::short_hash` instead, but if the compatibility is more important I am also ok to copy it over.\r\n**Solved**: See https://github.com/rust-lang/cargo/pull/10344#discussion_r796996824\r\n\r\n[the one in cargo-vendor]: https://github.com/alexcrichton/cargo-vendor/blob/07570e23/src/main.rs#L568-L575\r\n\r\n<!-- homu-ignore:end -->\r\n",
  915. locked: false,
  916. closed_at: None,
  917. created_at: Some(
  918. "2022-01-31T04:31:17",
  919. ),
  920. updated_at: Some(
  921. "2022-03-10T15:45:37",
  922. ),
  923. labels: [
  924. "T-cargo",
  925. "proposed-final-comment-period",
  926. "disposition-merge",
  927. "S-waiting-on-author",
  928. ],
  929. repository: "rust-lang/cargo",
  930. },
  931. status_comment: StatusComment {
  932. id: 1035052370,
  933. fk_issue: 1539703,
  934. fk_user: 20760818,
  935. body: "Team member @alexcrichton has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Eh2406\n* [x] @alexcrichton\n* [x] @ehuss\n* [ ] @joshtriplett\n\nConcerns:\n\n* directory-source (https://github.com/rust-lang/cargo/pull/10344#issuecomment-1035305157)\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  936. created_at: "2022-02-10T15:26:37",
  937. updated_at: Some(
  938. "2022-02-25T18:39:32",
  939. ),
  940. repository: "rust-lang/cargo",
  941. },
  942. },
  943. FullFCP {
  944. fcp: FCP {
  945. id: 2165,
  946. fk_issue: 1543435,
  947. fk_initiator: 162737,
  948. fk_initiating_comment: 1029383577,
  949. disposition: Some(
  950. "merge",
  951. ),
  952. fk_bot_tracking_comment: 1029383585,
  953. fcp_start: None,
  954. fcp_closed: false,
  955. },
  956. reviews: [
  957. Review {
  958. reviewer: Reviewer {
  959. id: 155238,
  960. login: "nikomatsakis",
  961. },
  962. approved: true,
  963. },
  964. Review {
  965. reviewer: Reviewer {
  966. id: 162737,
  967. login: "joshtriplett",
  968. },
  969. approved: true,
  970. },
  971. Review {
  972. reviewer: Reviewer {
  973. id: 173127,
  974. login: "pnkfelix",
  975. },
  976. approved: true,
  977. },
  978. Review {
  979. reviewer: Reviewer {
  980. id: 5963049,
  981. login: "cramertj",
  982. },
  983. approved: true,
  984. },
  985. Review {
  986. reviewer: Reviewer {
  987. id: 18526288,
  988. login: "scottmcm",
  989. },
  990. approved: false,
  991. },
  992. ],
  993. issue: FCPIssue {
  994. id: 1543435,
  995. number: 93628,
  996. fk_milestone: None,
  997. fk_user: 8872119,
  998. fk_assignee: Some(
  999. 31162821,
  1000. ),
  1001. open: true,
  1002. is_pull_request: true,
  1003. title: "Stabilize `let else`",
  1004. body: ":tada: **Stabilizes the `let else` feature, added by [RFC 3137](https://github.com/rust-lang/rfcs/pull/3137).** :tada: \r\n\r\nReference PR: https://github.com/rust-lang/reference/pull/1156\r\n\r\nFiling a draft as it is still subject to FCP approval.\r\n\r\ncloses #87335 (`let else` tracking issue)\r\n\r\nFCP: https://github.com/rust-lang/rust/pull/93628#issuecomment-1029383585\r\n\r\n----------\r\n\r\n## Stabilization report\r\n\r\n### Summary\r\n\r\nThe feature allows refutable patterns in `let` statements if the expression is\r\nfollowed by a diverging `else`:\r\n\r\n```Rust\r\nfn get_count_item(s: &str) -> (u64, &str) {\r\n let mut it = s.split(' ');\r\n let (Some(count_str), Some(item)) = (it.next(), it.next()) else {\r\n panic!(\"Can't segment count item pair: '{s}'\");\r\n };\r\n let Ok(count) = u64::from_str(count_str) else {\r\n panic!(\"Can't parse integer: '{count_str}'\");\r\n };\r\n (count, item)\r\n}\r\nassert_eq!(get_count_item(\"3 chairs\"), (3, \"chairs\"));\r\n```\r\n\r\n### Differences from the RFC / Desugaring\r\n\r\nOutside of desugaring I'm not aware of any differences between the implementation and the RFC. The chosen desugaring has been changed from the RFC's [original](https://rust-lang.github.io/rfcs/3137-let-else.html#reference-level-explanations). You can read a detailed discussion of the implementation history of it in @cormacrelf 's [summary](https://github.com/rust-lang/rust/pull/93628#issuecomment-1041143670) in this thread, as well as the [followup](https://github.com/rust-lang/rust/pull/93628#issuecomment-1046598419).\r\n\r\n### Test cases\r\n\r\nAdded by df9a2e0687895731e12f4a2651e8d70acd08872d:\r\n\r\n* [`ui/pattern/usefulness/top-level-alternation.rs`](https://github.com/rust-lang/rust/blob/1.58.1/src/test/ui/pattern/usefulness/top-level-alternation.rs) to ensure the unreachable pattern lint visits patterns inside `let else`.\r\n\r\nAdded by 5b95df4bdc330f34213812ad65cae86ced90d80c:\r\n\r\n* [`ui/let-else/let-else-bool-binop-init.rs`](https://github.com/rust-lang/rust/blob/1.58.1/src/test/ui/let-else/let-else-bool-binop-init.rs) to ensure that no lazy boolean expressions (using `&&` or `||`) are allowed in the expression, as the RFC mandates.\r\n* [`ui/let-else/let-else-brace-before-else.rs`](https://github.com/rust-lang/rust/blob/1.58.1/src/test/ui/let-else/let-else-brace-before-else.rs) to ensure that no `}` directly preceding the `else` is allowed in the expression, as the RFC mandates.\r\n* [`ui/let-else/let-else-check.rs`](https://github.com/rust-lang/rust/blob/1.58.1/src/test/ui/let-else/let-else-check.rs) to ensure that `#[allow(...)]` attributes added to the entire `let` statement apply for the `else` block.\r\n* [`ui/let-else/let-else-irrefutable.rs`](https://github.com/rust-lang/rust/blob/1.58.1/src/test/ui/let-else/let-else-irrefutable.rs) to ensure that the `irrefutable_let_patterns` lint fires.\r\n* [`ui/let-else/let-else-missing-semicolon.rs`](https://github.com/rust-lang/rust/blob/1.58.1/src/test/ui/let-else/let-else-missing-semicolon.rs) to ensure the presence of semicolons at the end of the `let` statement.\r\n* [`ui/let-else/let-else-non-diverging.rs`](https://github.com/rust-lang/rust/blob/1.58.1/src/test/ui/let-else/let-else-non-diverging.rs) to ensure the `else` block diverges.\r\n* [`ui/let-else/let-else-run-pass.rs`](https://github.com/rust-lang/rust/blob/1.58.1/src/test/ui/let-else/let-else-run-pass.rs) to ensure the feature works in some simple test case settings.\r\n* [`ui/let-else/let-else-scope.rs`](https://github.com/rust-lang/rust/blob/1.58.1/src/test/ui/let-else/let-else-scope.rs) to ensure the bindings created by the outer `let` expression are not available in the `else` block of it.\r\n\r\nAdded by bf7c32a4477a76bfd18fdcd8f45a939cbed82d34:\r\n\r\n* [`ui/let-else/issue-89960.rs`](https://github.com/rust-lang/rust/blob/1.58.1/src/test/ui/let-else/issue-89960.rs) as a regression test for the ICE-on-error bug #89960 . Later in 102b9125e1cefbb8ed8408d2db3f9f7d5afddbf0 this got removed in favour of more comprehensive tests.\r\n\r\nAdded by 856541963ce95ef4f7d4a81784bb5002ccf63c93:\r\n\r\n* [`ui/let-else/let-else-if.rs`](https://github.com/rust-lang/rust/blob/1.58.1/src/test/ui/let-else/let-else-if.rs) to test for the improved error message that points out that `let else if` is not possible.\r\n\r\nAdded by 9b45713b6c1775f0103a1ebee6ab7c6d9b781a21:\r\n\r\n* [`ui/let-else/let-else-allow-unused.rs`](https://github.com/rust-lang/rust/blob/master/src/test/ui/let-else/let-else-allow-unused.rs) as a regression test for #89807, to ensure that `#[allow(...)]` attributes added to the entire `let` statement apply for bindings created by the `let else` pattern.\r\n\r\nAdded by 61bcd8d3075471b3867428788c49f54fffe53f52:\r\n\r\n* [`ui/let-else/let-else-non-copy.rs`](https://github.com/rust-lang/rust/blob/master/src/test/ui/let-else/let-else-non-copy.rs) to ensure that a copy is performed out of non-copy wrapper types. This mirrors `if let` behaviour. The test case bases on rustc internal changes originally meant for #89933 but then removed from the PR due to the error prior to the improvements of #89841.\r\n* [`ui/let-else/let-else-source-expr-nomove-pass.rs `](https://github.com/rust-lang/rust/blob/master/src/test/ui/let-else/let-else-source-expr-nomove-pass.rs) to ensure that while there is a move of the binding in the successful case, the `else` case can still access the non-matching value. This mirrors `if let` behaviour.\r\n\r\nAdded by 102b9125e1cefbb8ed8408d2db3f9f7d5afddbf0:\r\n\r\n* [`ui/let-else/let-else-ref-bindings.rs`](https://github.com/rust-lang/rust/blob/master/src/test/ui/let-else/let-else-ref-bindings.rs) and [`ui/let-else/let-else-ref-bindings-pass.rs `](https://github.com/rust-lang/rust/blob/master/src/test/ui/let-else/let-else-ref-bindings-pass.rs) to check `ref` and `ref mut` keywords in the pattern work correctly and error when needed.\r\n\r\nAdded by 2715c5f984fda7faa156d1c9cf91aa4934f0e00f:\r\n\r\n* Match ergonomic tests adapted from the `rfc2005` test suite.\r\n\r\nAdded by fec8a507a27de1b08a0b95592dc8ec93bf0a321a:\r\n\r\n* [`ui/let-else/let-else-deref-coercion-annotated.rs`](https://github.com/rust-lang/rust/blob/master/src/test/ui/let-else/let-else-deref-coercion-annotated.rs) and [`ui/let-else/let-else-deref-coercion.rs`](https://github.com/rust-lang/rust/blob/master/src/test/ui/let-else/let-else-deref-coercion.rs) to check deref coercions.\r\n\r\n#### Added since this stabilization report was originally written (2022-02-09)\r\n\r\nAdded by 76ea56667703ac06689ff1d6fba5d170fa7392a7:\r\n\r\n* [`ui/let-else/let-else-destructuring.rs`](https://github.com/rust-lang/rust/blob/76ea56667703ac06689ff1d6fba5d170fa7392a7/src/test/ui/let-else/let-else-destructuring.rs) to give a nice error message if an user tries to do an assignment with a (possibly refutable) pattern and an `else` block, like asked for in #93995.\r\n\r\nAdded by e7730dcb7eb29a10ee73f269f4dc6e9d606db0da:\r\n\r\n* [`ui/let-else/let-else-allow-in-expr.rs`](https://github.com/rust-lang/rust/blob/master/src/test/ui/let-else/let-else-allow-in-expr.rs) to test whether `#[allow(unused_variables)]` works in the expr, as well as its non presence, as well as putting it on the entire `let else` *affects* the expr, too. This was adding a missing test as pointed out by the stabilization report.\r\n* Expansion of `ui/let-else/let-else-allow-unused.rs` and `ui/let-else/let-else-check.rs` to ensure that non-presence of `#[allow(unused)]` does issue the unused lint. This was adding a missing test case as pointed out by the stabilization report.\r\n\r\nAdded by 5bd71063b3810d977aa376d1e6dd7cec359330cc:\r\n\r\n* [`ui/let-else/let-else-slicing-error.rs`](https://github.com/rust-lang/rust/blob/master/src/test/ui/let-else/let-else-slicing-error.rs), a regression test for #92069, which got fixed without addition of a regression test. This resolves a missing test as pointed out by the stabilization report.\r\n\r\nAdded by this PR:\r\n\r\n* `ui/let-else/let-else.rs`, a simple run-pass check, similar to `ui/let-else/let-else-run-pass.rs`.\r\n\r\nAdded by #94012:\r\n\r\n* TBD, the PR is not yet merged.\r\n\r\n### Things not currently tested\r\n\r\n* ~~The `#[allow(...)]` tests check whether allow works, but they don't check whether the non-presence of allow causes a lint to fire.~~ → *test added by e7730dcb7eb29a10ee73f269f4dc6e9d606db0da*\r\n* ~~There is no `#[allow(...)]` test for the expression, as there are tests for the pattern and the else block.~~ → *test added by e7730dcb7eb29a10ee73f269f4dc6e9d606db0da*\r\n* ~~`let-else-brace-before-else.rs` forbids the `let ... = {} else {}` pattern and there is a rustfix to obtain `let ... = ({}) else {}`. I'm not sure whether the `.fixed` files are checked by the tooling that they compile. But if there is no such check, it would be neat to make sure that `let ... = ({}) else {}` compiles.~~ → *test added by e7730dcb7eb29a10ee73f269f4dc6e9d606db0da*\r\n* ~~#92069 got closed as fixed, but no regression test was added. Not sure it's worth to add one.~~ → *test added by 5bd71063b3810d977aa376d1e6dd7cec359330cc*\r\n\r\nDon't think these missing tests should block stabilization, they are rather details. But feel free to disagree.\r\n\r\n### Possible future work / Refutable destructuring assignments\r\n\r\n[RFC 2909](https://rust-lang.github.io/rfcs/2909-destructuring-assignment.html) specifies destructuring assignment, allowing statements like `FooBar { a, b, c } = foo();`.\r\nAs it was stabilized, destructuring assignment only allows *irrefutable* patterns, which before the advent of `let else` were the only patterns that `let` supported.\r\nSo the combination of `let else` and destructuring assignments gives reason to think about extensions of the destructuring assignments feature that allow refutable patterns, discussed in #93995.\r\n\r\nA naive mapping of `let else` to destructuring assignments in the form of `Some(v) = foo() else { ... };` might not be the ideal way. `let else` needs a diverging `else` clause as it introduces new bindings, while assignments have a default behaviour to fall back to if the pattern does not match, in the form of not performing the assignment. Thus, there is no good case to require divergence, or even an `else` clause at all, beyond the need for having *some* introducer syntax so that it is clear to readers that the assignment is not a given (enums and structs look similar). There are better candidates for introducer syntax however than an empty `else {}` clause, like `maybe` which could be added as a keyword on an edition boundary:\r\n\r\n```Rust\r\nlet mut v = 0;\r\nmaybe Some(v) = foo(&v);\r\nmaybe Some(v) = foo(&v) else { bar() };\r\n```\r\n\r\nFurther design discussion is left to an RFC, or the linked issue.",
  1005. locked: false,
  1006. closed_at: None,
  1007. created_at: Some(
  1008. "2022-02-03T19:28:27",
  1009. ),
  1010. updated_at: Some(
  1011. "2022-03-22T17:12:48",
  1012. ),
  1013. labels: [
  1014. "T-rustdoc",
  1015. "T-lang",
  1016. "relnotes",
  1017. "S-waiting-on-author",
  1018. "proposed-final-comment-period",
  1019. "disposition-merge",
  1020. "needs-fcp",
  1021. "S-waiting-on-fcp",
  1022. ],
  1023. repository: "rust-lang/rust",
  1024. },
  1025. status_comment: StatusComment {
  1026. id: 1029383585,
  1027. fk_issue: 1543435,
  1028. fk_user: 20760818,
  1029. body: "Team member @joshtriplett has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @cramertj\n* [x] @joshtriplett\n* [x] @nikomatsakis\n* [x] @pnkfelix\n* [ ] @scottmcm\n\nConcerns:\n\n* need-consistency-rvalue-temporary-rules-between-let-and-let-else (https://github.com/rust-lang/rust/pull/93628#issuecomment-1055738523)\n* ~~not-while-rustfmt-breaks-on-it~~ resolved by https://github.com/rust-lang/rust/pull/93628#issuecomment-1032936704\n* ~~semicolon~~ resolved by https://github.com/rust-lang/rust/pull/93628#issuecomment-1059799661\n* ~~stabilization-report~~ resolved by https://github.com/rust-lang/rust/pull/93628#issuecomment-1033846359\n* ~~summarize-concerns~~ resolved by https://github.com/rust-lang/rust/pull/93628#issuecomment-1056785904\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  1030. created_at: "2022-02-03T20:43:04",
  1031. updated_at: Some(
  1032. "2022-03-22T17:12:48",
  1033. ),
  1034. repository: "rust-lang/rust",
  1035. },
  1036. },
  1037. FullFCP {
  1038. fcp: FCP {
  1039. id: 2180,
  1040. fk_issue: 1557773,
  1041. fk_initiator: 64996,
  1042. fk_initiating_comment: 1041836034,
  1043. disposition: Some(
  1044. "merge",
  1045. ),
  1046. fk_bot_tracking_comment: 1041836052,
  1047. fcp_start: None,
  1048. fcp_closed: false,
  1049. },
  1050. reviews: [
  1051. Review {
  1052. reviewer: Reviewer {
  1053. id: 43198,
  1054. login: "ehuss",
  1055. },
  1056. approved: false,
  1057. },
  1058. Review {
  1059. reviewer: Reviewer {
  1060. id: 64996,
  1061. login: "alexcrichton",
  1062. },
  1063. approved: true,
  1064. },
  1065. Review {
  1066. reviewer: Reviewer {
  1067. id: 162737,
  1068. login: "joshtriplett",
  1069. },
  1070. approved: false,
  1071. },
  1072. Review {
  1073. reviewer: Reviewer {
  1074. id: 3709504,
  1075. login: "Eh2406",
  1076. },
  1077. approved: false,
  1078. },
  1079. ],
  1080. issue: FCPIssue {
  1081. id: 1557773,
  1082. number: 10383,
  1083. fk_milestone: None,
  1084. fk_user: 1940490,
  1085. fk_assignee: Some(
  1086. 43198,
  1087. ),
  1088. open: true,
  1089. is_pull_request: true,
  1090. title: "Unstable --keep-going flag",
  1091. body: "## Summary\r\n\r\nThis PR adds an unstable `--keep-going` flag documented as follows:\r\n\r\n> `cargo build --keep-going` (and similarly for `check`, `test` etc) will build as many crates in the dependency graph as possible, rather than aborting the build at the first one that fails to build.\r\n>\r\n> For example if the current package depends on dependencies `fails` and `works`, one of which fails to build, `cargo check -j1` may or may not build the one that succeeds (depending on which one of the two builds Cargo picked to run first), whereas `cargo check -j1 --keep-going` would definitely run both builds, even if the one run first fails.\r\n>\r\n> The `-Z unstable-options` command-line option must be used in order to use `--keep-going` while it is not yet stable:\r\n>\r\n> ```console\r\n> cargo check --keep-going -Z unstable-options\r\n> ```\r\n\r\n## Prior art\r\n\r\n[Buck](https://buck.build/) and [Bazel](https://bazel.build/) and Make all have this flag (though Bazel calls it `--keep_going` :vomiting_face:) with exactly this behavior.\r\n\r\n## Motivation\r\n\r\nI need this in order to make https://github.com/dtolnay/trybuild not super slow.\r\n\r\nTrybuild wants to run Cargo on a bunch of test cases, each of which is a bin crate. The bad options currently available are:\r\n\r\n- Give each test case its own target dir and run build on them in parallel. This is bad because all the test cases have the same dependencies in common (whatever `dev-dependencies` are declared by the project). If there are 100 test cases, all the dependencies would end up getting built 100 times, which is 100x slower than necessary despite the parallelism.\r\n\r\n- Reuse a single target dir for all the test cases. Two Cargos can't operate in parallel on the same target directory, so this forces the test cases to be built serially. This is much slower than necessary on a many-core system, and compounds all of the overheads in Cargo because the project structure must be reloaded by each invocation.\r\n\r\nThe good option I'd like to switch to is:\r\n\r\n- Run `cargo build --bins --keep-going --message-format=json` to build *all* the test cases in parallel. Use the filepaths in the JSON messages to ascribe diagnostics to which bin they're from.",
  1092. locked: false,
  1093. closed_at: None,
  1094. created_at: Some(
  1095. "2022-02-12T08:07:44",
  1096. ),
  1097. updated_at: Some(
  1098. "2022-03-22T01:39:57",
  1099. ),
  1100. labels: [
  1101. "T-cargo",
  1102. "proposed-final-comment-period",
  1103. "disposition-merge",
  1104. "S-waiting-on-review",
  1105. ],
  1106. repository: "rust-lang/cargo",
  1107. },
  1108. status_comment: StatusComment {
  1109. id: 1041836052,
  1110. fk_issue: 1557773,
  1111. fk_user: 20760818,
  1112. body: "Team member @alexcrichton has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [ ] @Eh2406\n* [x] @alexcrichton\n* [ ] @ehuss\n* [ ] @joshtriplett\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  1113. created_at: "2022-02-16T16:16:57",
  1114. updated_at: Some(
  1115. "2022-02-16T16:16:59",
  1116. ),
  1117. repository: "rust-lang/cargo",
  1118. },
  1119. },
  1120. FullFCP {
  1121. fcp: FCP {
  1122. id: 2187,
  1123. fk_issue: 1573465,
  1124. fk_initiator: 278509,
  1125. fk_initiating_comment: 1054448088,
  1126. disposition: Some(
  1127. "merge",
  1128. ),
  1129. fk_bot_tracking_comment: 1054497120,
  1130. fcp_start: None,
  1131. fcp_closed: false,
  1132. },
  1133. reviews: [
  1134. Review {
  1135. reviewer: Reviewer {
  1136. id: 162737,
  1137. login: "joshtriplett",
  1138. },
  1139. approved: false,
  1140. },
  1141. Review {
  1142. reviewer: Reviewer {
  1143. id: 278509,
  1144. login: "Amanieu",
  1145. },
  1146. approved: true,
  1147. },
  1148. Review {
  1149. reviewer: Reviewer {
  1150. id: 456674,
  1151. login: "BurntSushi",
  1152. },
  1153. approved: false,
  1154. },
  1155. Review {
  1156. reviewer: Reviewer {
  1157. id: 783247,
  1158. login: "m-ou-se",
  1159. },
  1160. approved: false,
  1161. },
  1162. Review {
  1163. reviewer: Reviewer {
  1164. id: 1940490,
  1165. login: "dtolnay",
  1166. },
  1167. approved: false,
  1168. },
  1169. Review {
  1170. reviewer: Reviewer {
  1171. id: 1993852,
  1172. login: "yaahc",
  1173. },
  1174. approved: false,
  1175. },
  1176. ],
  1177. issue: FCPIssue {
  1178. id: 1573465,
  1179. number: 1285,
  1180. fk_milestone: None,
  1181. fk_user: 29557119,
  1182. fk_assignee: Some(
  1183. 278509,
  1184. ),
  1185. open: true,
  1186. is_pull_request: true,
  1187. title: "Add the rdm target feature to the sqrdmlsh intrinsic.",
  1188. body: "I noticed the `sqrdmlsh` intrinsic was asserting for the wrong instruction and didn't have the rdm target feature.\r\n\r\nThis has removed the stabilization of this intrinsic, I'm not sure what the policy is here as the other rdm intrinsics haven't yet been stabilized.\r\n",
  1189. locked: false,
  1190. closed_at: None,
  1191. created_at: Some(
  1192. "2022-02-28T15:17:41",
  1193. ),
  1194. updated_at: Some(
  1195. "2022-03-13T11:21:58",
  1196. ),
  1197. labels: [
  1198. "T-libs-api",
  1199. ],
  1200. repository: "rust-lang/stdarch",
  1201. },
  1202. status_comment: StatusComment {
  1203. id: 1054497120,
  1204. fk_issue: 1573465,
  1205. fk_user: 20760818,
  1206. body: "Team member @Amanieu has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Amanieu\n* [ ] @BurntSushi\n* [ ] @dtolnay\n* [ ] @joshtriplett\n* [ ] @m-ou-se\n* [ ] @yaahc\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  1207. created_at: "2022-02-28T17:33:48",
  1208. updated_at: Some(
  1209. "2022-02-28T17:33:49",
  1210. ),
  1211. repository: "rust-lang/stdarch",
  1212. },
  1213. },
  1214. FullFCP {
  1215. fcp: FCP {
  1216. id: 2222,
  1217. fk_issue: 1356930,
  1218. fk_initiator: 783247,
  1219. fk_initiating_comment: 1075151992,
  1220. disposition: Some(
  1221. "merge",
  1222. ),
  1223. fk_bot_tracking_comment: 1075152025,
  1224. fcp_start: None,
  1225. fcp_closed: false,
  1226. },
  1227. reviews: [
  1228. Review {
  1229. reviewer: Reviewer {
  1230. id: 162737,
  1231. login: "joshtriplett",
  1232. },
  1233. approved: false,
  1234. },
  1235. Review {
  1236. reviewer: Reviewer {
  1237. id: 278509,
  1238. login: "Amanieu",
  1239. },
  1240. approved: false,
  1241. },
  1242. Review {
  1243. reviewer: Reviewer {
  1244. id: 456674,
  1245. login: "BurntSushi",
  1246. },
  1247. approved: false,
  1248. },
  1249. Review {
  1250. reviewer: Reviewer {
  1251. id: 783247,
  1252. login: "m-ou-se",
  1253. },
  1254. approved: true,
  1255. },
  1256. Review {
  1257. reviewer: Reviewer {
  1258. id: 1940490,
  1259. login: "dtolnay",
  1260. },
  1261. approved: false,
  1262. },
  1263. Review {
  1264. reviewer: Reviewer {
  1265. id: 1993852,
  1266. login: "yaahc",
  1267. },
  1268. approved: false,
  1269. },
  1270. ],
  1271. issue: FCPIssue {
  1272. id: 1356930,
  1273. number: 87074,
  1274. fk_milestone: None,
  1275. fk_user: 162737,
  1276. fk_assignee: None,
  1277. open: true,
  1278. is_pull_request: false,
  1279. title: "Tracking Issue for RFC 3128: I/O Safety",
  1280. body: "Feature gate: `#![feature(io_safety)]`\r\n\r\nThis is a tracking issue for [RFC 3128: I/O Safety](https://github.com/rust-lang/rfcs/pull/3128).\r\n\r\nRaw OS handles such as `RawFd` and `RawHandle` have hazards similar to raw pointers; they may be bogus or may dangle, leading to broken encapsulation boundaries and code whose behavior is impossible to bound in general.\r\n\r\nIntroduce a concept of *I/O safety*, and introduce a new set of types and traits, led by `OwnedFd` and `BorrowedFd`, to support it.\r\n\r\n### Public API\r\n\r\nThe public API on UNIX platforms consists of the types `OwnedFd` and `BorrowedFd`, the trait `AsFd`, and implementations of `AsFd`, `Into<OwnedFd>`, and `From<OwnedFd>` for various types (such as files and sockets).\r\n\r\nThe public API on Windows platforms consists of two sets of parallel types and traits and impls for `OwnedHandle`, `OwnedSocket`, `BorrowedHandle`, `BorrowedSocket`, etc.\r\n\r\n### Steps / History\r\n\r\n- [x] Implementation (based on @sunfishcode's existing work outside of std)\r\n- [ ] Final comment period (FCP)\r\n- [ ] Stabilization PR\r\n\r\n### Unresolved Questions\r\n\r\n- [ ] This RFC doesn't define a formal model for raw handle ownership and lifetimes. The rules for raw handles in this RFC are vague about their identity. What does it mean for a resource lifetime to be associated with a handle if the handle is just an integer type? Do all integer types with the same value share that association?\r\n- [ ] The Rust [reference](https://doc.rust-lang.org/reference/behavior-considered-undefined.html) defines undefined behavior for memory in terms of [LLVM's pointer aliasing rules](http://llvm.org/docs/LangRef.html#pointer-aliasing-rules); I/O could conceivably need a similar concept of handle aliasing rules. This doesn't seem necessary for present practical needs, but it could be explored in the future.",
  1281. locked: false,
  1282. closed_at: None,
  1283. created_at: Some(
  1284. "2021-07-12T03:08:11",
  1285. ),
  1286. updated_at: Some(
  1287. "2022-03-22T13:02:42",
  1288. ),
  1289. labels: [
  1290. "T-libs-api",
  1291. "proposed-final-comment-period",
  1292. "C-tracking-issue",
  1293. "disposition-merge",
  1294. "A-io",
  1295. ],
  1296. repository: "rust-lang/rust",
  1297. },
  1298. status_comment: StatusComment {
  1299. id: 1075152025,
  1300. fk_issue: 1356930,
  1301. fk_user: 20760818,
  1302. body: "Team member @m-ou-se has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [ ] @Amanieu\n* [ ] @BurntSushi\n* [ ] @dtolnay\n* [ ] @joshtriplett\n* [x] @m-ou-se\n* [ ] @yaahc\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  1303. created_at: "2022-03-22T13:02:40",
  1304. updated_at: Some(
  1305. "2022-03-22T13:02:42",
  1306. ),
  1307. repository: "rust-lang/rust",
  1308. },
  1309. },
  1310. FullFCP {
  1311. fcp: FCP {
  1312. id: 2188,
  1313. fk_issue: 1401981,
  1314. fk_initiator: 162737,
  1315. fk_initiating_comment: 1054642118,
  1316. disposition: Some(
  1317. "merge",
  1318. ),
  1319. fk_bot_tracking_comment: 1054642132,
  1320. fcp_start: None,
  1321. fcp_closed: false,
  1322. },
  1323. reviews: [
  1324. Review {
  1325. reviewer: Reviewer {
  1326. id: 162737,
  1327. login: "joshtriplett",
  1328. },
  1329. approved: true,
  1330. },
  1331. Review {
  1332. reviewer: Reviewer {
  1333. id: 278509,
  1334. login: "Amanieu",
  1335. },
  1336. approved: true,
  1337. },
  1338. Review {
  1339. reviewer: Reviewer {
  1340. id: 456674,
  1341. login: "BurntSushi",
  1342. },
  1343. approved: false,
  1344. },
  1345. Review {
  1346. reviewer: Reviewer {
  1347. id: 783247,
  1348. login: "m-ou-se",
  1349. },
  1350. approved: false,
  1351. },
  1352. Review {
  1353. reviewer: Reviewer {
  1354. id: 1940490,
  1355. login: "dtolnay",
  1356. },
  1357. approved: true,
  1358. },
  1359. Review {
  1360. reviewer: Reviewer {
  1361. id: 1993852,
  1362. login: "yaahc",
  1363. },
  1364. approved: true,
  1365. },
  1366. ],
  1367. issue: FCPIssue {
  1368. id: 1401981,
  1369. number: 88581,
  1370. fk_milestone: None,
  1371. fk_user: 3161395,
  1372. fk_assignee: None,
  1373. open: true,
  1374. is_pull_request: false,
  1375. title: "Tracking Issue for `int_roundings`",
  1376. body: "Feature gate: `#![feature(int_roundings)]`\r\n\r\nThis is a tracking issue for the `div_floor`, `div_ceil`, `next_multiple_of`, and `checked_multiple_of` methods on all integer types.\r\n\r\n### Public API\r\n\r\n```rust\r\nimpl {integer} {\r\n pub const fn div_floor(self, rhs: Self) -> Self;\r\n pub const fn div_ceil(self, rhs: Self) -> Self;\r\n pub const fn next_multiple_of(self, rhs: Self) -> Self;\r\n pub const fn checked_next_multiple_of(self, rhs: Self) -> Option<Self>;\r\n}\r\n```\r\n\r\n### Steps / History\r\n\r\n- [x] Implementation: #88582\r\n- [ ] Final comment period (FCP)\r\n- [ ] Stabilization PR\r\n\r\n### Unresolved Questions\r\n\r\n- None yet.\r\n",
  1377. locked: false,
  1378. closed_at: None,
  1379. created_at: Some(
  1380. "2021-09-02T05:24:48",
  1381. ),
  1382. updated_at: Some(
  1383. "2022-03-18T06:04:54",
  1384. ),
  1385. labels: [
  1386. "T-libs-api",
  1387. "proposed-final-comment-period",
  1388. "C-tracking-issue",
  1389. "disposition-merge",
  1390. ],
  1391. repository: "rust-lang/rust",
  1392. },
  1393. status_comment: StatusComment {
  1394. id: 1054642132,
  1395. fk_issue: 1401981,
  1396. fk_user: 20760818,
  1397. body: "Team member @joshtriplett has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Amanieu\n* [ ] @BurntSushi\n* [x] @dtolnay\n* [x] @joshtriplett\n* [ ] @m-ou-se\n* [x] @yaahc\n\nConcerns:\n\n* Should these panic or wrap around on overflow in release mode? (https://github.com/rust-lang/rust/issues/88581#issuecomment-1063388353)\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  1398. created_at: "2022-02-28T20:38:43",
  1399. updated_at: Some(
  1400. "2022-03-16T19:00:03",
  1401. ),
  1402. repository: "rust-lang/rust",
  1403. },
  1404. },
  1405. FullFCP {
  1406. fcp: FCP {
  1407. id: 2223,
  1408. fk_issue: 1531088,
  1409. fk_initiator: 783247,
  1410. fk_initiating_comment: 1075284785,
  1411. disposition: Some(
  1412. "merge",
  1413. ),
  1414. fk_bot_tracking_comment: 1075284811,
  1415. fcp_start: None,
  1416. fcp_closed: false,
  1417. },
  1418. reviews: [
  1419. Review {
  1420. reviewer: Reviewer {
  1421. id: 162737,
  1422. login: "joshtriplett",
  1423. },
  1424. approved: true,
  1425. },
  1426. Review {
  1427. reviewer: Reviewer {
  1428. id: 278509,
  1429. login: "Amanieu",
  1430. },
  1431. approved: true,
  1432. },
  1433. Review {
  1434. reviewer: Reviewer {
  1435. id: 456674,
  1436. login: "BurntSushi",
  1437. },
  1438. approved: false,
  1439. },
  1440. Review {
  1441. reviewer: Reviewer {
  1442. id: 783247,
  1443. login: "m-ou-se",
  1444. },
  1445. approved: true,
  1446. },
  1447. Review {
  1448. reviewer: Reviewer {
  1449. id: 1940490,
  1450. login: "dtolnay",
  1451. },
  1452. approved: false,
  1453. },
  1454. Review {
  1455. reviewer: Reviewer {
  1456. id: 1993852,
  1457. login: "yaahc",
  1458. },
  1459. approved: false,
  1460. },
  1461. ],
  1462. issue: FCPIssue {
  1463. id: 1531088,
  1464. number: 93203,
  1465. fk_milestone: None,
  1466. fk_user: 783247,
  1467. fk_assignee: None,
  1468. open: true,
  1469. is_pull_request: false,
  1470. title: "Tracking Issue for scoped threads",
  1471. body: "Feature gate: `#![feature(scoped_threads)]`\r\n\r\nThis is a tracking issue for scoped threads.\r\n\r\nDocumentation: https://doc.rust-lang.org/nightly/std/thread/fn.scope.html\r\n\r\nRFC: https://rust-lang.github.io/rfcs/3151-scoped-threads.html\r\n\r\n### Example usage\r\n\r\n```rust\r\nlet local_var = vec![1, 2, 3];\r\n\r\nthread::scope(|s| {\r\n s.spawn(|| println!(\"borrowed from thread #1: {:?}\", local_var));\r\n s.spawn(|| println!(\"borrowed from thread #2: {:?}\", local_var));\r\n println!(\"borrowed from the main thread: {:?}\", local_var);\r\n});\r\n```\r\n\r\n### Public API\r\n\r\n<!--\r\nFor most library features, it'd be useful to include a summarized version of the public API.\r\n(E.g. just the public function signatures without their doc comments or implementation.)\r\n-->\r\n\r\n```rust\r\n// std::thread\r\n\r\npub struct Scope<'scope, 'env: 'scope> { ... }\r\n\r\npub struct ScopedJoinHandle<'scope, T> { ... }\r\n\r\npub fn scope<'env, F, T>(f: F) -> T\r\nwhere\r\n F: for<'scope> FnOnce(&'scope Scope<'scope, 'env>) -> T;\r\n\r\nimpl Builder {\r\n pub fn spawn_scoped<'scope, 'env, F, T>(\r\n self,\r\n scope: &'scope Scope<'env>,\r\n f: F,\r\n ) -> io::Result<ScopedJoinHandle<'scope, T>>\r\n where\r\n F: FnOnce() -> T + Send + 'scope,\r\n T: Send + 'scope;\r\n}\r\n\r\nimpl<'scope, 'env> Scope<'scope, 'env> {\r\n pub fn spawn<F, T>(&'scope self, f: F) -> ScopedJoinHandle<'scope, T>\r\n where\r\n F: FnOnce() -> T + Send + 'scope,\r\n T: Send + 'scope;\r\n}\r\n\r\nimpl<'scope, T> ScopedJoinHandle<'scope, T> {\r\n pub fn join(self) -> Result<T>;\r\n pub fn thread(&self) -> &Thread;\r\n}\r\n```\r\n\r\n### Steps / History\r\n\r\n- [x] RFC attempt 1: https://github.com/rust-lang/rfcs/pull/2647\r\n- [x] RFC attempt 2: https://github.com/rust-lang/rfcs/pull/3151\r\n- [x] Implementation: https://github.com/rust-lang/rust/pull/92555\r\n- [x] Change signatures a bit to remove the argument to the spawn closures: https://github.com/rust-lang/rust/pull/94559\r\n- [x] Fix soundness issue in implementation: https://github.com/rust-lang/rust/pull/94644\r\n- [x] Document lifetimes: https://github.com/rust-lang/rust/pull/94763\r\n- [ ] Final comment period (FCP)\r\n- [ ] Stabilization PR\r\n\r\n### Unresolved Questions\r\n\r\n- [x] Can we omit the `&Scope` argument to the functions given to `.spawn()`? That is, `scope.spawn(|| ..)` rather than `scope.spawn(|_| ..)`.\r\n - It's already possible by forcing the user to use `move || ..` instead, but that's not great. Maybe the language could be subtly changed to capture references or certain `Copy` types by value rather than by reference(-to-reference).\r\n - See also [this comment](https://github.com/rust-lang/rfcs/pull/3151#issuecomment-883251161) and the collapsed section in [the comment below](https://github.com/rust-lang/rust/issues/93203#issuecomment-1019293467).\r\n - Mostly answered in [this comment](https://github.com/rust-lang/rust/issues/93203#issuecomment-1040720703).\r\n - Working idea in [this comment](https://github.com/rust-lang/rust/issues/93203#issuecomment-1040798286).\r\n - Implementation in https://github.com/rust-lang/rust/pull/94559\r\n- [x] How to document the `'env` and `'scope` lifetimes clearly without scaring people away.\r\n - https://github.com/rust-lang/rust/pull/94763\r\n",
  1472. locked: false,
  1473. closed_at: None,
  1474. created_at: Some(
  1475. "2022-01-22T14:52:22",
  1476. ),
  1477. updated_at: Some(
  1478. "2022-03-22T20:19:33",
  1479. ),
  1480. labels: [
  1481. "A-runtime",
  1482. "T-libs-api",
  1483. "proposed-final-comment-period",
  1484. "C-tracking-issue",
  1485. "disposition-merge",
  1486. ],
  1487. repository: "rust-lang/rust",
  1488. },
  1489. status_comment: StatusComment {
  1490. id: 1075284811,
  1491. fk_issue: 1531088,
  1492. fk_user: 20760818,
  1493. body: "Team member @m-ou-se has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Amanieu\n* [ ] @BurntSushi\n* [ ] @dtolnay\n* [x] @joshtriplett\n* [x] @m-ou-se\n* [ ] @yaahc\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  1494. created_at: "2022-03-22T14:54:10",
  1495. updated_at: Some(
  1496. "2022-03-22T15:08:16",
  1497. ),
  1498. repository: "rust-lang/rust",
  1499. },
  1500. },
  1501. FullFCP {
  1502. fcp: FCP {
  1503. id: 2224,
  1504. fk_issue: 1540023,
  1505. fk_initiator: 162737,
  1506. fk_initiating_comment: 1075444253,
  1507. disposition: Some(
  1508. "merge",
  1509. ),
  1510. fk_bot_tracking_comment: 1075453670,
  1511. fcp_start: None,
  1512. fcp_closed: false,
  1513. },
  1514. reviews: [
  1515. Review {
  1516. reviewer: Reviewer {
  1517. id: 155238,
  1518. login: "nikomatsakis",
  1519. },
  1520. approved: false,
  1521. },
  1522. Review {
  1523. reviewer: Reviewer {
  1524. id: 162737,
  1525. login: "joshtriplett",
  1526. },
  1527. approved: true,
  1528. },
  1529. Review {
  1530. reviewer: Reviewer {
  1531. id: 173127,
  1532. login: "pnkfelix",
  1533. },
  1534. approved: false,
  1535. },
  1536. Review {
  1537. reviewer: Reviewer {
  1538. id: 5963049,
  1539. login: "cramertj",
  1540. },
  1541. approved: false,
  1542. },
  1543. Review {
  1544. reviewer: Reviewer {
  1545. id: 18526288,
  1546. login: "scottmcm",
  1547. },
  1548. approved: false,
  1549. },
  1550. ],
  1551. issue: FCPIssue {
  1552. id: 1540023,
  1553. number: 1152,
  1554. fk_milestone: None,
  1555. fk_user: 928074,
  1556. fk_assignee: None,
  1557. open: true,
  1558. is_pull_request: true,
  1559. title: "Specify guarantees for repr(rust) structs",
  1560. body: "Closes: #1151",
  1561. locked: false,
  1562. closed_at: None,
  1563. created_at: Some(
  1564. "2022-01-31T13:06:24",
  1565. ),
  1566. updated_at: Some(
  1567. "2022-03-22T19:01:34",
  1568. ),
  1569. labels: [
  1570. "I-lang-nominated",
  1571. "T-lang",
  1572. ],
  1573. repository: "rust-lang/reference",
  1574. },
  1575. status_comment: StatusComment {
  1576. id: 1075453670,
  1577. fk_issue: 1540023,
  1578. fk_user: 20760818,
  1579. body: "Team member @joshtriplett has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [ ] @cramertj\n* [x] @joshtriplett\n* [ ] @nikomatsakis\n* [ ] @pnkfelix\n* [ ] @scottmcm\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  1580. created_at: "2022-03-22T18:00:29",
  1581. updated_at: Some(
  1582. "2022-03-22T18:00:32",
  1583. ),
  1584. repository: "rust-lang/reference",
  1585. },
  1586. },
  1587. FullFCP {
  1588. fcp: FCP {
  1589. id: 2225,
  1590. fk_issue: 1554600,
  1591. fk_initiator: 155238,
  1592. fk_initiating_comment: 1075521037,
  1593. disposition: Some(
  1594. "merge",
  1595. ),
  1596. fk_bot_tracking_comment: 1075521903,
  1597. fcp_start: None,
  1598. fcp_closed: false,
  1599. },
  1600. reviews: [
  1601. Review {
  1602. reviewer: Reviewer {
  1603. id: 155238,
  1604. login: "nikomatsakis",
  1605. },
  1606. approved: true,
  1607. },
  1608. Review {
  1609. reviewer: Reviewer {
  1610. id: 162737,
  1611. login: "joshtriplett",
  1612. },
  1613. approved: false,
  1614. },
  1615. Review {
  1616. reviewer: Reviewer {
  1617. id: 173127,
  1618. login: "pnkfelix",
  1619. },
  1620. approved: false,
  1621. },
  1622. Review {
  1623. reviewer: Reviewer {
  1624. id: 5963049,
  1625. login: "cramertj",
  1626. },
  1627. approved: false,
  1628. },
  1629. Review {
  1630. reviewer: Reviewer {
  1631. id: 18526288,
  1632. login: "scottmcm",
  1633. },
  1634. approved: false,
  1635. },
  1636. ],
  1637. issue: FCPIssue {
  1638. id: 1554600,
  1639. number: 1163,
  1640. fk_milestone: None,
  1641. fk_user: 1046063,
  1642. fk_assignee: None,
  1643. open: true,
  1644. is_pull_request: true,
  1645. title: "Clarify guarantees provided by repr(packed)",
  1646. body: "Clarify that `repr(packed)` minimizes inter-field padding and, in the special case of `repr(packed(1))`/`repr(packed)`, guarantees no inter-field padding.",
  1647. locked: false,
  1648. closed_at: None,
  1649. created_at: Some(
  1650. "2022-02-09T14:32:29",
  1651. ),
  1652. updated_at: Some(
  1653. "2022-03-22T20:03:06",
  1654. ),
  1655. labels: [
  1656. "I-lang-nominated",
  1657. "T-lang",
  1658. ],
  1659. repository: "rust-lang/reference",
  1660. },
  1661. status_comment: StatusComment {
  1662. id: 1075521903,
  1663. fk_issue: 1554600,
  1664. fk_user: 20760818,
  1665. body: "Team member @nikomatsakis has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [ ] @cramertj\n* [ ] @joshtriplett\n* [x] @nikomatsakis\n* [ ] @pnkfelix\n* [ ] @scottmcm\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  1666. created_at: "2022-03-22T19:01:41",
  1667. updated_at: Some(
  1668. "2022-03-22T19:01:42",
  1669. ),
  1670. repository: "rust-lang/reference",
  1671. },
  1672. },
  1673. FullFCP {
  1674. fcp: FCP {
  1675. id: 2192,
  1676. fk_issue: 30499,
  1677. fk_initiator: 783247,
  1678. fk_initiating_comment: 1057368222,
  1679. disposition: Some(
  1680. "merge",
  1681. ),
  1682. fk_bot_tracking_comment: 1057368239,
  1683. fcp_start: None,
  1684. fcp_closed: false,
  1685. },
  1686. reviews: [
  1687. Review {
  1688. reviewer: Reviewer {
  1689. id: 162737,
  1690. login: "joshtriplett",
  1691. },
  1692. approved: false,
  1693. },
  1694. Review {
  1695. reviewer: Reviewer {
  1696. id: 278509,
  1697. login: "Amanieu",
  1698. },
  1699. approved: false,
  1700. },
  1701. Review {
  1702. reviewer: Reviewer {
  1703. id: 456674,
  1704. login: "BurntSushi",
  1705. },
  1706. approved: false,
  1707. },
  1708. Review {
  1709. reviewer: Reviewer {
  1710. id: 783247,
  1711. login: "m-ou-se",
  1712. },
  1713. approved: true,
  1714. },
  1715. Review {
  1716. reviewer: Reviewer {
  1717. id: 1940490,
  1718. login: "dtolnay",
  1719. },
  1720. approved: true,
  1721. },
  1722. Review {
  1723. reviewer: Reviewer {
  1724. id: 1993852,
  1725. login: "yaahc",
  1726. },
  1727. approved: true,
  1728. },
  1729. ],
  1730. issue: FCPIssue {
  1731. id: 30499,
  1732. number: 41263,
  1733. fk_milestone: None,
  1734. fk_user: 18526288,
  1735. fk_assignee: None,
  1736. open: true,
  1737. is_pull_request: false,
  1738. title: "Tracking issue for `ToOwned::clone_into` (`toowned_clone_into`)",
  1739. body: "Feature added in PR https://github.com/rust-lang/rust/pull/41009\r\n\r\nQuestions raised in the PR:\r\n\r\n- [ ] The directionality is weird. In clone_from and assignment, the data moves right-to-left, but this moves it left-to-right. And that means that autoref doesn't work well, usually forcing you to write &mut.\r\n\r\n- [ ] But fixing that would mean putting it somewhere else, since the Self in ToOwned is the wrong type for what this needs to be. And moving it while still being overridable and providing a default is hard.",
  1740. locked: false,
  1741. closed_at: None,
  1742. created_at: Some(
  1743. "2017-04-13T00:10:07",
  1744. ),
  1745. updated_at: Some(
  1746. "2022-03-09T18:04:40",
  1747. ),
  1748. labels: [
  1749. "T-libs-api",
  1750. "B-unstable",
  1751. "proposed-final-comment-period",
  1752. "C-tracking-issue",
  1753. "disposition-merge",
  1754. "Libs-Tracked",
  1755. ],
  1756. repository: "rust-lang/rust",
  1757. },
  1758. status_comment: StatusComment {
  1759. id: 1057368239,
  1760. fk_issue: 30499,
  1761. fk_user: 20760818,
  1762. body: "Team member @m-ou-se has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [ ] @Amanieu\n* [ ] @BurntSushi\n* [x] @dtolnay\n* [ ] @joshtriplett\n* [x] @m-ou-se\n* [x] @yaahc\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  1763. created_at: "2022-03-02T20:55:07",
  1764. updated_at: Some(
  1765. "2022-03-09T18:04:40",
  1766. ),
  1767. repository: "rust-lang/rust",
  1768. },
  1769. },
  1770. FullFCP {
  1771. fcp: FCP {
  1772. id: 2193,
  1773. fk_issue: 1436141,
  1774. fk_initiator: 162737,
  1775. fk_initiating_comment: 1057495148,
  1776. disposition: Some(
  1777. "merge",
  1778. ),
  1779. fk_bot_tracking_comment: 1057495167,
  1780. fcp_start: None,
  1781. fcp_closed: false,
  1782. },
  1783. reviews: [
  1784. Review {
  1785. reviewer: Reviewer {
  1786. id: 162737,
  1787. login: "joshtriplett",
  1788. },
  1789. approved: true,
  1790. },
  1791. Review {
  1792. reviewer: Reviewer {
  1793. id: 278509,
  1794. login: "Amanieu",
  1795. },
  1796. approved: false,
  1797. },
  1798. Review {
  1799. reviewer: Reviewer {
  1800. id: 456674,
  1801. login: "BurntSushi",
  1802. },
  1803. approved: false,
  1804. },
  1805. Review {
  1806. reviewer: Reviewer {
  1807. id: 783247,
  1808. login: "m-ou-se",
  1809. },
  1810. approved: false,
  1811. },
  1812. Review {
  1813. reviewer: Reviewer {
  1814. id: 1940490,
  1815. login: "dtolnay",
  1816. },
  1817. approved: true,
  1818. },
  1819. Review {
  1820. reviewer: Reviewer {
  1821. id: 1993852,
  1822. login: "yaahc",
  1823. },
  1824. approved: false,
  1825. },
  1826. ],
  1827. issue: FCPIssue {
  1828. id: 1436141,
  1829. number: 89780,
  1830. fk_milestone: None,
  1831. fk_user: 1940490,
  1832. fk_assignee: None,
  1833. open: true,
  1834. is_pull_request: false,
  1835. title: "Tracking Issue for poll.ready()?",
  1836. body: "Feature gate: `#![feature(poll_ready)]`\r\n\r\nThis is a tracking issue for the `core::task::Poll::ready` method, which combined with `?` potentially supplants the `ready!` macro of #70922.\r\n\r\n```diff\r\n- let val = ready!(fut.poll(cx));\r\n+ let val = fut.poll(cx).ready()?;\r\n```\r\n\r\n### Public API\r\n\r\n```rust\r\n// core::task\r\n\r\nimpl<T> Poll<T> {\r\n pub fn ready(self) -> Ready<T>;\r\n}\r\n\r\npub struct Ready<T> {...}\r\n\r\nimpl<T> Try for Ready<T> {\r\n type Output = T;\r\n type Residual = Ready<Infallible>;\r\n ...\r\n}\r\n\r\nimpl<T> FromResidual for Ready<T> {...}\r\n\r\nimpl<T> FromResidual<Ready<Infallible>> for Poll<T> {...}\r\n\r\nimpl<T> Debug for Ready<T> {...}\r\n```\r\n\r\n### Steps / History\r\n\r\n<!--\r\nFor larger features, more steps might be involved.\r\nIf the feature is changed later, please add those PRs here as well.\r\n-->\r\n\r\n- [x] Implementation: #89651\r\n- [ ] Final comment period (FCP)\r\n- [ ] Stabilization PR\r\n\r\n### Unresolved Questions\r\n\r\n- ?",
  1837. locked: false,
  1838. closed_at: None,
  1839. created_at: Some(
  1840. "2021-10-11T19:15:35",
  1841. ),
  1842. updated_at: Some(
  1843. "2022-03-22T19:52:49",
  1844. ),
  1845. labels: [
  1846. "T-libs-api",
  1847. "proposed-final-comment-period",
  1848. "C-tracking-issue",
  1849. "disposition-merge",
  1850. "A-async-await",
  1851. "AsyncAwait-Triaged",
  1852. ],
  1853. repository: "rust-lang/rust",
  1854. },
  1855. status_comment: StatusComment {
  1856. id: 1057495167,
  1857. fk_issue: 1436141,
  1858. fk_user: 20760818,
  1859. body: "Team member @joshtriplett has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [ ] @Amanieu\n* [ ] @BurntSushi\n* [x] @dtolnay\n* [x] @joshtriplett\n* [ ] @m-ou-se\n* [ ] @yaahc\n\nConcerns:\n\n* try impl contradicts existing try impls (https://github.com/rust-lang/rust/issues/89780#issuecomment-1075570747)\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  1860. created_at: "2022-03-02T23:31:12",
  1861. updated_at: Some(
  1862. "2022-03-22T19:49:49",
  1863. ),
  1864. repository: "rust-lang/rust",
  1865. },
  1866. },
  1867. FullFCP {
  1868. fcp: FCP {
  1869. id: 2194,
  1870. fk_issue: 8163,
  1871. fk_initiator: 173127,
  1872. fk_initiating_comment: 1059258728,
  1873. disposition: Some(
  1874. "close",
  1875. ),
  1876. fk_bot_tracking_comment: 1059258740,
  1877. fcp_start: None,
  1878. fcp_closed: false,
  1879. },
  1880. reviews: [
  1881. Review {
  1882. reviewer: Reviewer {
  1883. id: 77424,
  1884. login: "eddyb",
  1885. },
  1886. approved: true,
  1887. },
  1888. Review {
  1889. reviewer: Reviewer {
  1890. id: 155238,
  1891. login: "nikomatsakis",
  1892. },
  1893. approved: false,
  1894. },
  1895. Review {
  1896. reviewer: Reviewer {
  1897. id: 173127,
  1898. login: "pnkfelix",
  1899. },
  1900. approved: true,
  1901. },
  1902. Review {
  1903. reviewer: Reviewer {
  1904. id: 332036,
  1905. login: "oli-obk",
  1906. },
  1907. approved: true,
  1908. },
  1909. Review {
  1910. reviewer: Reviewer {
  1911. id: 679122,
  1912. login: "nagisa",
  1913. },
  1914. approved: false,
  1915. },
  1916. Review {
  1917. reviewer: Reviewer {
  1918. id: 831192,
  1919. login: "wesleywiser",
  1920. },
  1921. approved: true,
  1922. },
  1923. Review {
  1924. reviewer: Reviewer {
  1925. id: 1295100,
  1926. login: "davidtwco",
  1927. },
  1928. approved: true,
  1929. },
  1930. Review {
  1931. reviewer: Reviewer {
  1932. id: 1408859,
  1933. login: "Aaron1011",
  1934. },
  1935. approved: true,
  1936. },
  1937. Review {
  1938. reviewer: Reviewer {
  1939. id: 1606434,
  1940. login: "estebank",
  1941. },
  1942. approved: false,
  1943. },
  1944. Review {
  1945. reviewer: Reviewer {
  1946. id: 1822483,
  1947. login: "cjgillot",
  1948. },
  1949. approved: false,
  1950. },
  1951. Review {
  1952. reviewer: Reviewer {
  1953. id: 1825894,
  1954. login: "michaelwoerister",
  1955. },
  1956. approved: false,
  1957. },
  1958. Review {
  1959. reviewer: Reviewer {
  1960. id: 5751617,
  1961. login: "petrochenkov",
  1962. },
  1963. approved: true,
  1964. },
  1965. Review {
  1966. reviewer: Reviewer {
  1967. id: 20113453,
  1968. login: "matthewjasper",
  1969. },
  1970. approved: true,
  1971. },
  1972. Review {
  1973. reviewer: Reviewer {
  1974. id: 29864074,
  1975. login: "lcnr",
  1976. },
  1977. approved: true,
  1978. },
  1979. ],
  1980. issue: FCPIssue {
  1981. id: 8163,
  1982. number: 20561,
  1983. fk_milestone: None,
  1984. fk_user: 709807,
  1985. fk_assignee: None,
  1986. open: true,
  1987. is_pull_request: false,
  1988. title: "Tracking issue for Consistent no-prelude attribute (RFC 501)",
  1989. body: "https://github.com/rust-lang/rfcs/pull/501\n",
  1990. locked: false,
  1991. closed_at: None,
  1992. created_at: Some(
  1993. "2015-01-05T05:56:57",
  1994. ),
  1995. updated_at: Some(
  1996. "2022-03-07T06:48:35",
  1997. ),
  1998. labels: [
  1999. "B-RFC-approved",
  2000. "T-compiler",
  2001. "proposed-final-comment-period",
  2002. "C-tracking-issue",
  2003. "disposition-close",
  2004. "S-tracking-design-concerns",
  2005. ],
  2006. repository: "rust-lang/rust",
  2007. },
  2008. status_comment: StatusComment {
  2009. id: 1059258740,
  2010. fk_issue: 8163,
  2011. fk_user: 20760818,
  2012. body: "Team member @pnkfelix has proposed to close this. The next step is review by the rest of the tagged team members:\n\n* [x] @Aaron1011\n* [ ] @cjgillot\n* [x] @davidtwco\n* [x] @eddyb\n* [ ] @estebank\n* [x] @lcnr\n* [x] @matthewjasper\n* [ ] @michaelwoerister\n* [ ] @nagisa\n* [ ] @nikomatsakis\n* [x] @oli-obk\n* [x] @petrochenkov\n* [x] @pnkfelix\n* [x] @wesleywiser\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  2013. created_at: "2022-03-04T15:23:33",
  2014. updated_at: Some(
  2015. "2022-03-07T06:48:35",
  2016. ),
  2017. repository: "rust-lang/rust",
  2018. },
  2019. },
  2020. FullFCP {
  2021. fcp: FCP {
  2022. id: 2195,
  2023. fk_issue: 1575673,
  2024. fk_initiator: 1993852,
  2025. fk_initiating_comment: 1059571313,
  2026. disposition: Some(
  2027. "merge",
  2028. ),
  2029. fk_bot_tracking_comment: 1059571324,
  2030. fcp_start: None,
  2031. fcp_closed: false,
  2032. },
  2033. reviews: [
  2034. Review {
  2035. reviewer: Reviewer {
  2036. id: 162737,
  2037. login: "joshtriplett",
  2038. },
  2039. approved: false,
  2040. },
  2041. Review {
  2042. reviewer: Reviewer {
  2043. id: 278509,
  2044. login: "Amanieu",
  2045. },
  2046. approved: true,
  2047. },
  2048. Review {
  2049. reviewer: Reviewer {
  2050. id: 456674,
  2051. login: "BurntSushi",
  2052. },
  2053. approved: false,
  2054. },
  2055. Review {
  2056. reviewer: Reviewer {
  2057. id: 783247,
  2058. login: "m-ou-se",
  2059. },
  2060. approved: false,
  2061. },
  2062. Review {
  2063. reviewer: Reviewer {
  2064. id: 1940490,
  2065. login: "dtolnay",
  2066. },
  2067. approved: true,
  2068. },
  2069. Review {
  2070. reviewer: Reviewer {
  2071. id: 1993852,
  2072. login: "yaahc",
  2073. },
  2074. approved: true,
  2075. },
  2076. ],
  2077. issue: FCPIssue {
  2078. id: 1575673,
  2079. number: 94530,
  2080. fk_milestone: None,
  2081. fk_user: 51362316,
  2082. fk_assignee: Some(
  2083. 162737,
  2084. ),
  2085. open: true,
  2086. is_pull_request: true,
  2087. title: "Implement Copy, Clone, PartialEq and Eq for core::fmt::Alignment",
  2088. body: "Alignment is a fieldless exhaustive enum, so it is already possible to\r\nclone and compare it by matching, but it is inconvenient to do so. For\r\nexample, if one would like to create a struct describing a formatter\r\nconfiguration and provide a clone implementation:\r\n\r\n```rust\r\npub struct Format {\r\n fill: char,\r\n width: Option<usize>,\r\n align: fmt::Alignment,\r\n}\r\n\r\nimpl Clone for Format {\r\n fn clone(&self) -> Self {\r\n Format {\r\n align: match self.align {\r\n fmt::Alignment::Left => fmt::Alignment::Left,\r\n fmt::Alignment::Right => fmt::Alignment::Right,\r\n fmt::Alignment::Center => fmt::Alignment::Center,\r\n },\r\n .. *self\r\n }\r\n }\r\n}\r\n```\r\n\r\nDerive Copy, Clone, PartialEq, and Eq for Alignment for convenience.\r\n\r\n",
  2089. locked: false,
  2090. closed_at: None,
  2091. created_at: Some(
  2092. "2022-03-02T17:35:18",
  2093. ),
  2094. updated_at: Some(
  2095. "2022-03-16T21:07:25",
  2096. ),
  2097. labels: [
  2098. "T-libs-api",
  2099. "S-waiting-on-review",
  2100. "proposed-final-comment-period",
  2101. "disposition-merge",
  2102. "needs-fcp",
  2103. ],
  2104. repository: "rust-lang/rust",
  2105. },
  2106. status_comment: StatusComment {
  2107. id: 1059571324,
  2108. fk_issue: 1575673,
  2109. fk_user: 20760818,
  2110. body: "Team member @yaahc has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Amanieu\n* [ ] @BurntSushi\n* [x] @dtolnay\n* [ ] @joshtriplett\n* [ ] @m-ou-se\n* [x] @yaahc\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  2111. created_at: "2022-03-04T22:17:57",
  2112. updated_at: Some(
  2113. "2022-03-16T21:07:25",
  2114. ),
  2115. repository: "rust-lang/rust",
  2116. },
  2117. },
  2118. FullFCP {
  2119. fcp: FCP {
  2120. id: 2199,
  2121. fk_issue: 1523566,
  2122. fk_initiator: 783247,
  2123. fk_initiating_comment: 1062923482,
  2124. disposition: Some(
  2125. "merge",
  2126. ),
  2127. fk_bot_tracking_comment: 1062923488,
  2128. fcp_start: None,
  2129. fcp_closed: false,
  2130. },
  2131. reviews: [
  2132. Review {
  2133. reviewer: Reviewer {
  2134. id: 162737,
  2135. login: "joshtriplett",
  2136. },
  2137. approved: false,
  2138. },
  2139. Review {
  2140. reviewer: Reviewer {
  2141. id: 278509,
  2142. login: "Amanieu",
  2143. },
  2144. approved: true,
  2145. },
  2146. Review {
  2147. reviewer: Reviewer {
  2148. id: 456674,
  2149. login: "BurntSushi",
  2150. },
  2151. approved: false,
  2152. },
  2153. Review {
  2154. reviewer: Reviewer {
  2155. id: 783247,
  2156. login: "m-ou-se",
  2157. },
  2158. approved: true,
  2159. },
  2160. Review {
  2161. reviewer: Reviewer {
  2162. id: 1940490,
  2163. login: "dtolnay",
  2164. },
  2165. approved: true,
  2166. },
  2167. Review {
  2168. reviewer: Reviewer {
  2169. id: 1993852,
  2170. login: "yaahc",
  2171. },
  2172. approved: false,
  2173. },
  2174. ],
  2175. issue: FCPIssue {
  2176. id: 1523566,
  2177. number: 92939,
  2178. fk_milestone: None,
  2179. fk_user: 6182002,
  2180. fk_assignee: None,
  2181. open: true,
  2182. is_pull_request: false,
  2183. title: "Tracking Issue for windows_process_extensions_raw_arg",
  2184. body: "<!--\r\nThank you for creating a tracking issue!\r\n\r\nTracking issues are for tracking a feature from implementation to stabilization.\r\n\r\nMake sure to include the relevant RFC for the feature if it has one.\r\n\r\nIf the new feature is small, it may be fine to skip the RFC process. In that\r\ncase, you can use use `issue = \"none\"` in your initial implementation PR. The\r\nreviewer will ask you to open a tracking issue if they agree your feature can be\r\nadded without an RFC.\r\n-->\r\n\r\nFeature gate: `#![feature(windows_process_extensions_raw_arg)]`\r\n\r\nThis is a tracking issue for the raw_arg extension to `std::process::Command` on Windows.\r\n\r\nWindows programs on the lowest API layers actually aren't required to accept arguments as an array of strings.\r\nIn fact the illusion that they do accept arguments as an array of strings is mostly maintained by one function. [CommandLineToArgvW](https://docs.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-commandlinetoargvw). Not all programs use that function to parse arguments. Some of the programs that don't do this are really important, like `cmd.exe`. These programs instead read their argument as one large string, which makes them incompatible with how `std::process::Command::arg` passes the arguments. `std::process::Command::arg` assumes the program will parse the string using `CommandLineToArgvW`. Most of the time this is a reasonable assumption to make.\r\n\r\nSolution: `raw_arg`. Strings passed via `raw_arg` are sent straight through with no alteration, save for inserting spaces inbetween them. Raw args are not quoted, escaped, or really anything complicated like that. This makes them compatible with Windows executable files which don't use [CommandLineToArgvW](https://docs.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-commandlinetoargvw).\r\n\r\n### Public API\r\n\r\n<!--\r\nFor most library features, it'd be useful to include a summarized version of the public API.\r\n(E.g. just the public function signatures without their doc comments or implementation.)\r\n-->\r\n\r\n```rust\r\nuse std::process::Command;\r\n\r\n// This will print\r\n// \"Hello World!\"\r\n// with the quotes, which is not possible with std::process::Command and `cmd.exe`\r\n// with the current `.arg()` method.\r\nlet cmd = Command::new(\"cmd.exe\").raw_arg(\"/C echo \\\"Hello World!\\\"\");\r\n\r\n// You can also chain this\r\nCommand::new(\"cmd.exe\")\r\n .raw_arg(\"/C\")\r\n .raw_arg(\"echo\")\r\n .raw_arg(\"\\\"Hello World!\\\"\")\r\n```\r\n\r\n### Steps / History\r\n\r\n<!--\r\nFor larger features, more steps might be involved.\r\nIf the feature is changed later, please add those PRs here as well.\r\n-->\r\n\r\n- [x] Implementation: #85832\r\n- [ ] Final comment period (FCP)\r\n- [ ] Stabilization PR #92942\r\n\r\n<!--\r\nOnce the feature has gone through a few release cycles and there are no\r\nunresolved questions left, the feature might be ready for stabilization.\r\n\r\nIf this feature didn't go through the RFC process, a final comment period\r\n(FCP) is always needed before stabilization. This works as follows:\r\n\r\nA library API team member can kick off the stabilization process, at which point\r\nthe rfcbot will ask all the team members to verify they agree with\r\nstabilization. Once enough members agree and there are no concerns, the final\r\ncomment period begins: this issue will be marked as such and will be listed\r\nin the next This Week in Rust newsletter. If no blocking concerns are raised in\r\nthat period of 10 days, a stabilzation PR can be opened by anyone.\r\n-->\r\n\r\n### Unresolved Questions\r\n\r\n<!--\r\nInclude any open questions that need to be answered before the feature can be\r\nstabilised. If multiple (unrelated) big questions come up, it can be a good idea\r\nto open a separate issue for each, to make it easier to keep track of the\r\ndiscussions.\r\n\r\nIt's useful to link any relevant discussions and conclusions (whether on GitHub,\r\nZulip, or the internals forum) here.\r\n-->\r\n\r\n- None yet.\r\n",
  2185. locked: false,
  2186. closed_at: None,
  2187. created_at: Some(
  2188. "2022-01-15T18:35:41",
  2189. ),
  2190. updated_at: Some(
  2191. "2022-03-16T21:06:45",
  2192. ),
  2193. labels: [
  2194. "T-libs-api",
  2195. "proposed-final-comment-period",
  2196. "C-tracking-issue",
  2197. "disposition-merge",
  2198. ],
  2199. repository: "rust-lang/rust",
  2200. },
  2201. status_comment: StatusComment {
  2202. id: 1062923488,
  2203. fk_issue: 1523566,
  2204. fk_user: 20760818,
  2205. body: "Team member @m-ou-se has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Amanieu\n* [ ] @BurntSushi\n* [x] @dtolnay\n* [ ] @joshtriplett\n* [x] @m-ou-se\n* [ ] @yaahc\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  2206. created_at: "2022-03-09T13:30:27",
  2207. updated_at: Some(
  2208. "2022-03-16T21:06:45",
  2209. ),
  2210. repository: "rust-lang/rust",
  2211. },
  2212. },
  2213. FullFCP {
  2214. fcp: FCP {
  2215. id: 2200,
  2216. fk_issue: 1526589,
  2217. fk_initiator: 783247,
  2218. fk_initiating_comment: 1062941258,
  2219. disposition: Some(
  2220. "merge",
  2221. ),
  2222. fk_bot_tracking_comment: 1062941276,
  2223. fcp_start: None,
  2224. fcp_closed: false,
  2225. },
  2226. reviews: [
  2227. Review {
  2228. reviewer: Reviewer {
  2229. id: 162737,
  2230. login: "joshtriplett",
  2231. },
  2232. approved: false,
  2233. },
  2234. Review {
  2235. reviewer: Reviewer {
  2236. id: 278509,
  2237. login: "Amanieu",
  2238. },
  2239. approved: false,
  2240. },
  2241. Review {
  2242. reviewer: Reviewer {
  2243. id: 456674,
  2244. login: "BurntSushi",
  2245. },
  2246. approved: true,
  2247. },
  2248. Review {
  2249. reviewer: Reviewer {
  2250. id: 783247,
  2251. login: "m-ou-se",
  2252. },
  2253. approved: true,
  2254. },
  2255. Review {
  2256. reviewer: Reviewer {
  2257. id: 1940490,
  2258. login: "dtolnay",
  2259. },
  2260. approved: false,
  2261. },
  2262. Review {
  2263. reviewer: Reviewer {
  2264. id: 1993852,
  2265. login: "yaahc",
  2266. },
  2267. approved: false,
  2268. },
  2269. ],
  2270. issue: FCPIssue {
  2271. id: 1526589,
  2272. number: 93044,
  2273. fk_milestone: None,
  2274. fk_user: 105766,
  2275. fk_assignee: Some(
  2276. 783247,
  2277. ),
  2278. open: true,
  2279. is_pull_request: true,
  2280. title: "Add forwarding impls for Read, Write, Seek to Arc, Rc",
  2281. body: "This adds forwarding impls for `std::io::Read`, `std::io::Write`, and `std::io::Seek` to `alloc:sync::Arc` and `alloc::rc::Rc`. This is relevant for types such as `std::fs::File`, `std::net::TcpStream`, and `std::os::unix::UnixStream` which [implement `Read`, `Write`, and `Seek` for `&T`](https://doc.rust-lang.org/stable/std/io/trait.Read.html#impl-Read-12).\r\n\r\nIt is currently possible to do this manually through wrappers (See the \"Implement a forwarding wrapper by hand\" section for an example), but providing forwarding impls makes this pattern nicer to use. In some cases this can also be done with an extra reference, as shown below:\r\n\r\n```rust\r\nlet stream = TcpStream::connect(\"localhost:8080\");\r\nlet stream = Arc::new(stream);\r\n\r\n&stream1.write(b\"hello world\")?; // OK: Read is available for &Arc<TcpStream>.\r\nstream1.write(b\"hello world\")?; // Error: Read is not available for Arc<TcpStream>.\r\n // (Enabled by this PR)\r\n```\r\n\r\nThe reason why we want `Arc<T>: Read where &T: Read` is because this enables `Arc<T>` to be passed directly into APIs which expect `T: Read`:\r\n\r\n```rust\r\nfn operate<R: Read>(reader: R) {}\r\n\r\nlet stream = TcpStream::connect(\"localhost:8080\");\r\nlet stream = Arc::new(stream);\r\noperate(stream); // Error: `Arc<TcpStream>` does not implement `Read`\r\n // (Enabled by this PR)\r\n```\r\n\r\n## Implement a forwarding wrapper by hand\r\n\r\nThese trait impls do not allow anything which wasn't allowed before. Dereferencing to the inner type to get `Arc<T>: Read` to work is already possible by creating an intermediate type, as shown here:\r\n\r\n```rust\r\n/// A variant of `Arc` that delegates IO traits if available on `&T`.\r\n#[derive(Debug)]\r\npub struct IoArc<T>(Arc<T>);\r\n\r\nimpl<T> IoArc<T> {\r\n /// Create a new instance of IoArc.\r\n pub fn new(data: T) -> Self {\r\n Self(Arc::new(data))\r\n }\r\n}\r\n\r\nimpl<T> Read for IoArc<T>\r\nwhere\r\n for<'a> &'a T: Read,\r\n{\r\n fn read(&mut self, buf: &mut [u8]) -> io::Result<usize> {\r\n (&mut &*self.0).read(buf)\r\n }\r\n}\r\n\r\nimpl<T> Write for IoArc<T>\r\nwhere\r\n for<'a> &'a T: Write,\r\n{\r\n fn write(&mut self, buf: &[u8]) -> io::Result<usize> {\r\n (&mut &*self.0).write(buf)\r\n }\r\n\r\n fn flush(&mut self) -> io::Result<()> {\r\n (&mut &*self.0).flush()\r\n }\r\n}\r\n\r\n// forward `Clone`, `Seek` as well here\r\n```\r\n\r\n## References\r\n\r\n- [IO trait delegation for `Arc` blog post](https://blog.yoshuawuyts.com/io-trait-delegation-for-arc/)\r\n- [`async-dup` crate](https://docs.rs/async-dup/latest/async_dup/)\r\n- [`io-arc` crate](https://docs.rs/io-arc/latest/io_arc/)\r\n\r\nJoint work with @yoshuawuyts. ",
  2282. locked: false,
  2283. closed_at: None,
  2284. created_at: Some(
  2285. "2022-01-18T18:28:24",
  2286. ),
  2287. updated_at: Some(
  2288. "2022-03-09T20:30:56",
  2289. ),
  2290. labels: [
  2291. "T-libs-api",
  2292. "proposed-final-comment-period",
  2293. "disposition-merge",
  2294. "needs-fcp",
  2295. "S-waiting-on-fcp",
  2296. ],
  2297. repository: "rust-lang/rust",
  2298. },
  2299. status_comment: StatusComment {
  2300. id: 1062941276,
  2301. fk_issue: 1526589,
  2302. fk_user: 20760818,
  2303. body: "Team member @m-ou-se has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [ ] @Amanieu\n* [x] @BurntSushi\n* [ ] @dtolnay\n* [ ] @joshtriplett\n* [x] @m-ou-se\n* [ ] @yaahc\n\nConcerns:\n\n* behavior on impls that mutate the reference (https://github.com/rust-lang/rust/pull/93044#issuecomment-1063283366)\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  2304. created_at: "2022-03-09T13:50:59",
  2305. updated_at: Some(
  2306. "2022-03-09T19:31:27",
  2307. ),
  2308. repository: "rust-lang/rust",
  2309. },
  2310. },
  2311. FullFCP {
  2312. fcp: FCP {
  2313. id: 2201,
  2314. fk_issue: 1515212,
  2315. fk_initiator: 155238,
  2316. fk_initiating_comment: 1064213230,
  2317. disposition: Some(
  2318. "merge",
  2319. ),
  2320. fk_bot_tracking_comment: 1064213248,
  2321. fcp_start: None,
  2322. fcp_closed: false,
  2323. },
  2324. reviews: [
  2325. Review {
  2326. reviewer: Reviewer {
  2327. id: 155238,
  2328. login: "nikomatsakis",
  2329. },
  2330. approved: true,
  2331. },
  2332. Review {
  2333. reviewer: Reviewer {
  2334. id: 162737,
  2335. login: "joshtriplett",
  2336. },
  2337. approved: true,
  2338. },
  2339. Review {
  2340. reviewer: Reviewer {
  2341. id: 173127,
  2342. login: "pnkfelix",
  2343. },
  2344. approved: true,
  2345. },
  2346. Review {
  2347. reviewer: Reviewer {
  2348. id: 5963049,
  2349. login: "cramertj",
  2350. },
  2351. approved: true,
  2352. },
  2353. Review {
  2354. reviewer: Reviewer {
  2355. id: 18526288,
  2356. login: "scottmcm",
  2357. },
  2358. approved: false,
  2359. },
  2360. ],
  2361. issue: FCPIssue {
  2362. id: 1515212,
  2363. number: 3216,
  2364. fk_milestone: None,
  2365. fk_user: 1408859,
  2366. fk_assignee: None,
  2367. open: true,
  2368. is_pull_request: true,
  2369. title: "Allow using `for<'a>` syntax when declaring closures",
  2370. body: "[Rendered](https://github.com/Aaron1011/rfcs/blob/higher-ranked-closure/text/0000-closure-lifetime-binder.md)\r\n\r\nAllow declaring closures using the `for<'a>` syntax:\r\n\r\n```rust\r\nlet closure = for<'a> |val: &'a u8| println!(\"Val: {:?}\", val);\r\nclosure(&25);\r\n```\r\n\r\nThis guarantees that the closure will use a higher-ranked lifetime, regardless of how the closure is used in the rest of the function.\r\n\r\nThis went through a pre-RFC at https://internals.rust-lang.org/t/pre-rfc-allow-for-a-syntax-with-closures-for-explicit-higher-ranked-lifetimes/15888. Thank you to everyone who provided feedback!",
  2371. locked: false,
  2372. closed_at: None,
  2373. created_at: Some(
  2374. "2022-01-06T21:27:47",
  2375. ),
  2376. updated_at: Some(
  2377. "2022-03-22T17:12:19",
  2378. ),
  2379. labels: [
  2380. "T-lang",
  2381. "proposed-final-comment-period",
  2382. "disposition-merge",
  2383. "I-lang-nominated",
  2384. ],
  2385. repository: "rust-lang/rfcs",
  2386. },
  2387. status_comment: StatusComment {
  2388. id: 1064213248,
  2389. fk_issue: 1515212,
  2390. fk_user: 20760818,
  2391. body: "Team member @nikomatsakis has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @cramertj\n* [x] @joshtriplett\n* [x] @nikomatsakis\n* [x] @pnkfelix\n* [ ] @scottmcm\n\nConcerns:\n\n* add-third-alternative (https://github.com/rust-lang/rfcs/pull/3216#issuecomment-1064214419)\n* grammatical-ambiguities (https://github.com/rust-lang/rfcs/pull/3216#issuecomment-1064215076)\n* ~~ultimate-syntax~~ resolved by https://github.com/rust-lang/rfcs/pull/3216#issuecomment-1068270337\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  2392. created_at: "2022-03-10T15:56:15",
  2393. updated_at: Some(
  2394. "2022-03-22T17:11:16",
  2395. ),
  2396. repository: "rust-lang/rfcs",
  2397. },
  2398. },
  2399. FullFCP {
  2400. fcp: FCP {
  2401. id: 2202,
  2402. fk_issue: 1458601,
  2403. fk_initiator: 831192,
  2404. fk_initiating_comment: 1064452035,
  2405. disposition: Some(
  2406. "merge",
  2407. ),
  2408. fk_bot_tracking_comment: 1064452047,
  2409. fcp_start: None,
  2410. fcp_closed: false,
  2411. },
  2412. reviews: [
  2413. Review {
  2414. reviewer: Reviewer {
  2415. id: 77424,
  2416. login: "eddyb",
  2417. },
  2418. approved: true,
  2419. },
  2420. Review {
  2421. reviewer: Reviewer {
  2422. id: 155238,
  2423. login: "nikomatsakis",
  2424. },
  2425. approved: true,
  2426. },
  2427. Review {
  2428. reviewer: Reviewer {
  2429. id: 162737,
  2430. login: "joshtriplett",
  2431. },
  2432. approved: true,
  2433. },
  2434. Review {
  2435. reviewer: Reviewer {
  2436. id: 173127,
  2437. login: "pnkfelix",
  2438. },
  2439. approved: true,
  2440. },
  2441. Review {
  2442. reviewer: Reviewer {
  2443. id: 332036,
  2444. login: "oli-obk",
  2445. },
  2446. approved: true,
  2447. },
  2448. Review {
  2449. reviewer: Reviewer {
  2450. id: 679122,
  2451. login: "nagisa",
  2452. },
  2453. approved: false,
  2454. },
  2455. Review {
  2456. reviewer: Reviewer {
  2457. id: 831192,
  2458. login: "wesleywiser",
  2459. },
  2460. approved: true,
  2461. },
  2462. Review {
  2463. reviewer: Reviewer {
  2464. id: 1295100,
  2465. login: "davidtwco",
  2466. },
  2467. approved: true,
  2468. },
  2469. Review {
  2470. reviewer: Reviewer {
  2471. id: 1408859,
  2472. login: "Aaron1011",
  2473. },
  2474. approved: false,
  2475. },
  2476. Review {
  2477. reviewer: Reviewer {
  2478. id: 1606434,
  2479. login: "estebank",
  2480. },
  2481. approved: true,
  2482. },
  2483. Review {
  2484. reviewer: Reviewer {
  2485. id: 1822483,
  2486. login: "cjgillot",
  2487. },
  2488. approved: true,
  2489. },
  2490. Review {
  2491. reviewer: Reviewer {
  2492. id: 1825894,
  2493. login: "michaelwoerister",
  2494. },
  2495. approved: true,
  2496. },
  2497. Review {
  2498. reviewer: Reviewer {
  2499. id: 5751617,
  2500. login: "petrochenkov",
  2501. },
  2502. approved: true,
  2503. },
  2504. Review {
  2505. reviewer: Reviewer {
  2506. id: 5963049,
  2507. login: "cramertj",
  2508. },
  2509. approved: true,
  2510. },
  2511. Review {
  2512. reviewer: Reviewer {
  2513. id: 18526288,
  2514. login: "scottmcm",
  2515. },
  2516. approved: true,
  2517. },
  2518. Review {
  2519. reviewer: Reviewer {
  2520. id: 20113453,
  2521. login: "matthewjasper",
  2522. },
  2523. approved: false,
  2524. },
  2525. Review {
  2526. reviewer: Reviewer {
  2527. id: 29864074,
  2528. login: "lcnr",
  2529. },
  2530. approved: false,
  2531. },
  2532. ],
  2533. issue: FCPIssue {
  2534. id: 1458601,
  2535. number: 3191,
  2536. fk_milestone: None,
  2537. fk_user: 91507758,
  2538. fk_assignee: None,
  2539. open: true,
  2540. is_pull_request: true,
  2541. title: "New Rust attribute to support embedding debugger visualizers",
  2542. body: "This RFC adds support for a new Rust attribute that will embed a debugger visualizer into a PDB/ELF.\r\n\r\n[Internals thread](https://internals.rust-lang.org/t/pre-rfc-natvis-support-for-rust/15477)\r\n\r\n[Rendered](https://github.com/ridwanabdillahi/rfcs/blob/natvis/text/0000-debugger-visualizer.md)",
  2543. locked: false,
  2544. closed_at: None,
  2545. created_at: Some(
  2546. "2021-11-03T21:00:27",
  2547. ),
  2548. updated_at: Some(
  2549. "2022-03-22T18:56:49",
  2550. ),
  2551. labels: [
  2552. "T-lang",
  2553. "T-compiler",
  2554. "proposed-final-comment-period",
  2555. "disposition-merge",
  2556. ],
  2557. repository: "rust-lang/rfcs",
  2558. },
  2559. status_comment: StatusComment {
  2560. id: 1064452047,
  2561. fk_issue: 1458601,
  2562. fk_user: 20760818,
  2563. body: "Team member @wesleywiser has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [ ] @Aaron1011\n* [x] @cjgillot\n* [x] @cramertj\n* [x] @davidtwco\n* [x] @eddyb\n* [x] @estebank\n* [x] @joshtriplett\n* [ ] @lcnr\n* [ ] @matthewjasper\n* [x] @michaelwoerister\n* [ ] @nagisa\n* [x] @nikomatsakis\n* [x] @oli-obk\n* [x] @petrochenkov\n* [x] @pnkfelix\n* [x] @scottmcm\n* [x] @wesleywiser\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  2564. created_at: "2022-03-10T20:00:38",
  2565. updated_at: Some(
  2566. "2022-03-22T18:56:49",
  2567. ),
  2568. repository: "rust-lang/rfcs",
  2569. },
  2570. },
  2571. FullFCP {
  2572. fcp: FCP {
  2573. id: 2203,
  2574. fk_issue: 1582911,
  2575. fk_initiator: 162737,
  2576. fk_initiating_comment: 1064599945,
  2577. disposition: Some(
  2578. "merge",
  2579. ),
  2580. fk_bot_tracking_comment: 1064599953,
  2581. fcp_start: None,
  2582. fcp_closed: false,
  2583. },
  2584. reviews: [
  2585. Review {
  2586. reviewer: Reviewer {
  2587. id: 162737,
  2588. login: "joshtriplett",
  2589. },
  2590. approved: true,
  2591. },
  2592. Review {
  2593. reviewer: Reviewer {
  2594. id: 278509,
  2595. login: "Amanieu",
  2596. },
  2597. approved: true,
  2598. },
  2599. Review {
  2600. reviewer: Reviewer {
  2601. id: 456674,
  2602. login: "BurntSushi",
  2603. },
  2604. approved: false,
  2605. },
  2606. Review {
  2607. reviewer: Reviewer {
  2608. id: 783247,
  2609. login: "m-ou-se",
  2610. },
  2611. approved: false,
  2612. },
  2613. Review {
  2614. reviewer: Reviewer {
  2615. id: 1940490,
  2616. login: "dtolnay",
  2617. },
  2618. approved: true,
  2619. },
  2620. Review {
  2621. reviewer: Reviewer {
  2622. id: 1993852,
  2623. login: "yaahc",
  2624. },
  2625. approved: true,
  2626. },
  2627. ],
  2628. issue: FCPIssue {
  2629. id: 1582911,
  2630. number: 94786,
  2631. fk_milestone: None,
  2632. fk_user: 1046063,
  2633. fk_assignee: Some(
  2634. 162737,
  2635. ),
  2636. open: true,
  2637. is_pull_request: true,
  2638. title: "Document NonZeroXxx layout guarantees",
  2639. body: "Document that `NonZeroXxx` has the same layout and bit validity as `Xxx` with the exception of `0`.",
  2640. locked: false,
  2641. closed_at: None,
  2642. created_at: Some(
  2643. "2022-03-09T21:53:25",
  2644. ),
  2645. updated_at: Some(
  2646. "2022-03-16T21:05:45",
  2647. ),
  2648. labels: [
  2649. "T-libs-api",
  2650. "S-waiting-on-review",
  2651. "proposed-final-comment-period",
  2652. "disposition-merge",
  2653. ],
  2654. repository: "rust-lang/rust",
  2655. },
  2656. status_comment: StatusComment {
  2657. id: 1064599953,
  2658. fk_issue: 1582911,
  2659. fk_user: 20760818,
  2660. body: "Team member @joshtriplett has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Amanieu\n* [ ] @BurntSushi\n* [x] @dtolnay\n* [x] @joshtriplett\n* [ ] @m-ou-se\n* [x] @yaahc\n\nConcerns:\n\n* implications (https://github.com/rust-lang/rust/pull/94786#issuecomment-1065261648)\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  2661. created_at: "2022-03-10T23:09:24",
  2662. updated_at: Some(
  2663. "2022-03-16T21:05:45",
  2664. ),
  2665. repository: "rust-lang/rust",
  2666. },
  2667. },
  2668. FullFCP {
  2669. fcp: FCP {
  2670. id: 2204,
  2671. fk_issue: 1524479,
  2672. fk_initiator: 18526288,
  2673. fk_initiating_comment: 1065659256,
  2674. disposition: Some(
  2675. "merge",
  2676. ),
  2677. fk_bot_tracking_comment: 1065659273,
  2678. fcp_start: None,
  2679. fcp_closed: false,
  2680. },
  2681. reviews: [
  2682. Review {
  2683. reviewer: Reviewer {
  2684. id: 155238,
  2685. login: "nikomatsakis",
  2686. },
  2687. approved: false,
  2688. },
  2689. Review {
  2690. reviewer: Reviewer {
  2691. id: 162737,
  2692. login: "joshtriplett",
  2693. },
  2694. approved: true,
  2695. },
  2696. Review {
  2697. reviewer: Reviewer {
  2698. id: 173127,
  2699. login: "pnkfelix",
  2700. },
  2701. approved: false,
  2702. },
  2703. Review {
  2704. reviewer: Reviewer {
  2705. id: 278509,
  2706. login: "Amanieu",
  2707. },
  2708. approved: true,
  2709. },
  2710. Review {
  2711. reviewer: Reviewer {
  2712. id: 456674,
  2713. login: "BurntSushi",
  2714. },
  2715. approved: false,
  2716. },
  2717. Review {
  2718. reviewer: Reviewer {
  2719. id: 783247,
  2720. login: "m-ou-se",
  2721. },
  2722. approved: true,
  2723. },
  2724. Review {
  2725. reviewer: Reviewer {
  2726. id: 1940490,
  2727. login: "dtolnay",
  2728. },
  2729. approved: true,
  2730. },
  2731. Review {
  2732. reviewer: Reviewer {
  2733. id: 1993852,
  2734. login: "yaahc",
  2735. },
  2736. approved: false,
  2737. },
  2738. Review {
  2739. reviewer: Reviewer {
  2740. id: 5963049,
  2741. login: "cramertj",
  2742. },
  2743. approved: true,
  2744. },
  2745. Review {
  2746. reviewer: Reviewer {
  2747. id: 18526288,
  2748. login: "scottmcm",
  2749. },
  2750. approved: true,
  2751. },
  2752. ],
  2753. issue: FCPIssue {
  2754. id: 1524479,
  2755. number: 92980,
  2756. fk_milestone: None,
  2757. fk_user: 330628,
  2758. fk_assignee: None,
  2759. open: true,
  2760. is_pull_request: false,
  2761. title: "Tracking Issue for const offset_from (const_ptr_offset_from)",
  2762. body: "The feature gate for the issue is `#![feature(const_ptr_offset_from)]`.\r\n\r\nThis tracks `const`ness of the following function(s):\r\n```rust\r\nimpl<T> *const T {\r\n const unsafe fn offset_from(self, origin: *const T) -> isize\r\n}\r\n```\r\n\r\n### About tracking issues\r\n\r\nTracking issues are used to record the overall progress of implementation.\r\nThey are also used as hubs connecting to other relevant issues, e.g., bugs or open design questions.\r\nA tracking issue is however *not* meant for large scale discussion, questions, or bug reports about a feature.\r\nInstead, open a dedicated issue for the specific matter and add the relevant feature gate label.\r\n\r\n### Steps\r\n<!--\r\nInclude each step required to complete the feature. Typically this is a PR\r\nimplementing a feature, followed by a PR that stabilises the feature. However\r\nfor larger features an implementation could be broken up into multiple PRs.\r\n-->\r\n\r\n- [x] Implementation\r\n- Stabilization report: https://github.com/rust-lang/rust/issues/92980#issuecomment-1065644848\r\n- [ ] Stabilization PR ([see instructions on rustc-dev-guide][stabilization-guide])\r\n\r\n[stabilization-guide]: https://rustc-dev-guide.rust-lang.org/stabilization_guide.html#stabilization-pr\r\n[doc-guide]: https://rustc-dev-guide.rust-lang.org/stabilization_guide.html#documentation-prs\r\n\r\n### Unresolved Questions\r\n<!--\r\nInclude any open questions that need to be answered before the feature can be\r\nstabilised.\r\n-->\r\n\r\n- Should we allow calling this function in case both pointers point to the same allocation (in terms of their provenance) but are not both in-bounds? Cc https://github.com/rust-lang/rust/issues/92512 <br> → this can be resolved post-stabilization since it is backwards compatible\r\n\r\n### Implementation history\r\n\r\n<!--\r\nInclude a list of all the PRs that were involved in implementing the feature.\r\n-->\r\n- see https://github.com/rust-lang/rust/issues/41079\r\n- https://github.com/rust-lang/rust/pull/94827",
  2763. locked: false,
  2764. closed_at: None,
  2765. created_at: Some(
  2766. "2022-01-16T19:22:52",
  2767. ),
  2768. updated_at: Some(
  2769. "2022-03-22T17:13:42",
  2770. ),
  2771. labels: [
  2772. "T-lang",
  2773. "T-libs-api",
  2774. "proposed-final-comment-period",
  2775. "C-tracking-issue",
  2776. "disposition-merge",
  2777. ],
  2778. repository: "rust-lang/rust",
  2779. },
  2780. status_comment: StatusComment {
  2781. id: 1065659273,
  2782. fk_issue: 1524479,
  2783. fk_user: 20760818,
  2784. body: "Team member @scottmcm has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Amanieu\n* [ ] @BurntSushi\n* [x] @cramertj\n* [x] @dtolnay\n* [x] @joshtriplett\n* [x] @m-ou-se\n* [ ] @nikomatsakis\n* [ ] @pnkfelix\n* [x] @scottmcm\n* [ ] @yaahc\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  2785. created_at: "2022-03-11T23:46:56",
  2786. updated_at: Some(
  2787. "2022-03-22T17:13:42",
  2788. ),
  2789. repository: "rust-lang/rust",
  2790. },
  2791. },
  2792. FullFCP {
  2793. fcp: FCP {
  2794. id: 2205,
  2795. fk_issue: 920007,
  2796. fk_initiator: 783247,
  2797. fk_initiating_comment: 1065939508,
  2798. disposition: Some(
  2799. "merge",
  2800. ),
  2801. fk_bot_tracking_comment: 1065939514,
  2802. fcp_start: None,
  2803. fcp_closed: false,
  2804. },
  2805. reviews: [
  2806. Review {
  2807. reviewer: Reviewer {
  2808. id: 162737,
  2809. login: "joshtriplett",
  2810. },
  2811. approved: false,
  2812. },
  2813. Review {
  2814. reviewer: Reviewer {
  2815. id: 278509,
  2816. login: "Amanieu",
  2817. },
  2818. approved: true,
  2819. },
  2820. Review {
  2821. reviewer: Reviewer {
  2822. id: 456674,
  2823. login: "BurntSushi",
  2824. },
  2825. approved: false,
  2826. },
  2827. Review {
  2828. reviewer: Reviewer {
  2829. id: 783247,
  2830. login: "m-ou-se",
  2831. },
  2832. approved: true,
  2833. },
  2834. Review {
  2835. reviewer: Reviewer {
  2836. id: 1940490,
  2837. login: "dtolnay",
  2838. },
  2839. approved: true,
  2840. },
  2841. Review {
  2842. reviewer: Reviewer {
  2843. id: 1993852,
  2844. login: "yaahc",
  2845. },
  2846. approved: false,
  2847. },
  2848. ],
  2849. issue: FCPIssue {
  2850. id: 920007,
  2851. number: 71941,
  2852. fk_milestone: None,
  2853. fk_user: 291359,
  2854. fk_assignee: None,
  2855. open: true,
  2856. is_pull_request: false,
  2857. title: "Tracking Issue for `NonNull<[T]>::slice_from_raw_parts`",
  2858. body: "This is a tracking issue for the `NonNull<[T]>::slice_from_raw_parts` method proposed in PR https://github.com/rust-lang/rust/pull/71940.\r\nThe feature gates for the issue are `#![feature(nonnull_slice_from_raw_parts)]`, and `#![feature(const_nonnull_slice_from_raw_parts)]` for using as a `const fn`.\r\n\r\n### API\r\n\r\n```rust\r\nimpl<T> NonNull<[T]> {\r\n pub const fn slice_from_raw_parts(data: NonNull<T>, len: usize) -> Self;\r\n}\r\n```\r\n\r\nDocs: https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.slice_from_raw_parts\r\n\r\n### Steps\r\n\r\n- [x] Implementation: https://github.com/rust-lang/rust/pull/71940\r\n- [ ] FCP: https://github.com/rust-lang/rust/issues/71941#issuecomment-1065939514\r\n- [ ] Stabilization PR\r\n",
  2859. locked: false,
  2860. closed_at: None,
  2861. created_at: Some(
  2862. "2020-05-06T05:55:51",
  2863. ),
  2864. updated_at: Some(
  2865. "2022-03-16T21:04:47",
  2866. ),
  2867. labels: [
  2868. "T-libs-api",
  2869. "B-unstable",
  2870. "proposed-final-comment-period",
  2871. "C-tracking-issue",
  2872. "disposition-merge",
  2873. "A-slice",
  2874. "Libs-Tracked",
  2875. "Libs-Small",
  2876. "A-raw-pointers",
  2877. ],
  2878. repository: "rust-lang/rust",
  2879. },
  2880. status_comment: StatusComment {
  2881. id: 1065939514,
  2882. fk_issue: 920007,
  2883. fk_user: 20760818,
  2884. body: "Team member @m-ou-se has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Amanieu\n* [ ] @BurntSushi\n* [x] @dtolnay\n* [ ] @joshtriplett\n* [x] @m-ou-se\n* [ ] @yaahc\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  2885. created_at: "2022-03-12T18:42:00",
  2886. updated_at: Some(
  2887. "2022-03-16T21:04:47",
  2888. ),
  2889. repository: "rust-lang/rust",
  2890. },
  2891. },
  2892. FullFCP {
  2893. fcp: FCP {
  2894. id: 2206,
  2895. fk_issue: 1578761,
  2896. fk_initiator: 783247,
  2897. fk_initiating_comment: 1065939865,
  2898. disposition: Some(
  2899. "merge",
  2900. ),
  2901. fk_bot_tracking_comment: 1065939867,
  2902. fcp_start: None,
  2903. fcp_closed: false,
  2904. },
  2905. reviews: [
  2906. Review {
  2907. reviewer: Reviewer {
  2908. id: 162737,
  2909. login: "joshtriplett",
  2910. },
  2911. approved: false,
  2912. },
  2913. Review {
  2914. reviewer: Reviewer {
  2915. id: 278509,
  2916. login: "Amanieu",
  2917. },
  2918. approved: false,
  2919. },
  2920. Review {
  2921. reviewer: Reviewer {
  2922. id: 456674,
  2923. login: "BurntSushi",
  2924. },
  2925. approved: false,
  2926. },
  2927. Review {
  2928. reviewer: Reviewer {
  2929. id: 783247,
  2930. login: "m-ou-se",
  2931. },
  2932. approved: true,
  2933. },
  2934. Review {
  2935. reviewer: Reviewer {
  2936. id: 1940490,
  2937. login: "dtolnay",
  2938. },
  2939. approved: true,
  2940. },
  2941. Review {
  2942. reviewer: Reviewer {
  2943. id: 1993852,
  2944. login: "yaahc",
  2945. },
  2946. approved: true,
  2947. },
  2948. ],
  2949. issue: FCPIssue {
  2950. id: 1578761,
  2951. number: 94640,
  2952. fk_milestone: None,
  2953. fk_user: 81013316,
  2954. fk_assignee: Some(
  2955. 1993852,
  2956. ),
  2957. open: true,
  2958. is_pull_request: true,
  2959. title: "Partially stabilize `(const_)slice_ptr_len` feature by stabilizing `NonNull::len`",
  2960. body: "This PR partially stabilizes features `const_slice_ptr_len` and `slice_ptr_len` by only stabilizing `NonNull::len`. This partial stabilization is tracked under features `slice_ptr_len_nonnull` and `const_slice_ptr_len_nonnull`, for which this PR can serve as the tracking issue.\r\n\r\nTo summarize the discussion from #71146 leading up to this partial stabilization request:\r\n\r\nIt's currently a bit footgunny to obtain the length of a raw slice pointer, stabilization of `NonNull:len` will help with removing these footguns. Some example footguns are:\r\n\r\n```rust\r\n/// # Safety\r\n/// The caller must ensure that `ptr`:\r\n/// 1. does not point to memory that was previously allocated but is now deallocated;\r\n/// 2. is within the bounds of a single allocated object;\r\n/// 3. does not to point to a slice for which the length exceeds `isize::MAX` bytes;\r\n/// 4. points to a properly aligned address;\r\n/// 5. does not point to uninitialized memory;\r\n/// 6. does not point to a mutably borrowed memory location.\r\npub unsafe fn ptr_len<T>(ptr: core::ptr::NonNull<[T]>) -> usize {\r\n (&*ptr.as_ptr()).len()\r\n}\r\n```\r\n\r\nA slightly less complicated version (but still more complicated than it needs to be):\r\n\r\n```rust\r\n/// # Safety\r\n/// The caller must ensure that the start of `ptr`:\r\n/// 1. does not point to memory that was previously allocated but is now deallocated;\r\n/// 2. must be within the bounds of a single allocated object.\r\npub unsafe fn ptr_len<T>(ptr: NonNull<[T]>) -> usize {\r\n (&*(ptr.as_ptr() as *const [()])).len()\r\n}\r\n```\r\n\r\nThis PR does not stabilize `<*const [T]>::len` and `<*mut [T]>::len` because the tracking issue #71146 list a potential blocker for these methods, but this blocker [does not apply](https://github.com/rust-lang/rust/issues/71146#issuecomment-808735714) to `NonNull::len`.\r\n\r\nWe should probably also ping the [Constant Evaluation WG](https://github.com/rust-lang/const-eval) since this PR includes a `#[rustc_allow_const_fn_unstable(const_slice_ptr_len)]`. My instinct here is that this will probably be okay because the pointer is not actually dereferenced and `len()` does not touch the address component of the pointer, but would be best to double check :)\r\n\r\nOne potential down-side was raised that stabilizing `NonNull::len` could lead to encouragement of coding patterns like:\r\n\r\n```\r\npub fn ptr_len<T>(ptr: *mut [T]) -> usize {\r\n NonNull::new(ptr).unwrap().len()\r\n}\r\n```\r\n\r\nwhich unnecessarily assert non-nullness. However, these are much less of a footgun than the above examples and this should be resolved when `slice_ptr_len` fully stabilizes eventually.\r\n",
  2961. locked: false,
  2962. closed_at: None,
  2963. created_at: Some(
  2964. "2022-03-05T11:09:04",
  2965. ),
  2966. updated_at: Some(
  2967. "2022-03-18T17:21:27",
  2968. ),
  2969. labels: [
  2970. "T-libs-api",
  2971. "proposed-final-comment-period",
  2972. "disposition-merge",
  2973. "needs-fcp",
  2974. "S-waiting-on-fcp",
  2975. ],
  2976. repository: "rust-lang/rust",
  2977. },
  2978. status_comment: StatusComment {
  2979. id: 1065939867,
  2980. fk_issue: 1578761,
  2981. fk_user: 20760818,
  2982. body: "Team member @m-ou-se has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [ ] @Amanieu\n* [ ] @BurntSushi\n* [x] @dtolnay\n* [ ] @joshtriplett\n* [x] @m-ou-se\n* [x] @yaahc\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  2983. created_at: "2022-03-12T18:44:19",
  2984. updated_at: Some(
  2985. "2022-03-18T17:20:57",
  2986. ),
  2987. repository: "rust-lang/rust",
  2988. },
  2989. },
  2990. FullFCP {
  2991. fcp: FCP {
  2992. id: 2207,
  2993. fk_issue: 1215172,
  2994. fk_initiator: 783247,
  2995. fk_initiating_comment: 1065947789,
  2996. disposition: Some(
  2997. "merge",
  2998. ),
  2999. fk_bot_tracking_comment: 1065947793,
  3000. fcp_start: None,
  3001. fcp_closed: false,
  3002. },
  3003. reviews: [
  3004. Review {
  3005. reviewer: Reviewer {
  3006. id: 162737,
  3007. login: "joshtriplett",
  3008. },
  3009. approved: false,
  3010. },
  3011. Review {
  3012. reviewer: Reviewer {
  3013. id: 278509,
  3014. login: "Amanieu",
  3015. },
  3016. approved: true,
  3017. },
  3018. Review {
  3019. reviewer: Reviewer {
  3020. id: 456674,
  3021. login: "BurntSushi",
  3022. },
  3023. approved: false,
  3024. },
  3025. Review {
  3026. reviewer: Reviewer {
  3027. id: 783247,
  3028. login: "m-ou-se",
  3029. },
  3030. approved: true,
  3031. },
  3032. Review {
  3033. reviewer: Reviewer {
  3034. id: 1940490,
  3035. login: "dtolnay",
  3036. },
  3037. approved: false,
  3038. },
  3039. Review {
  3040. reviewer: Reviewer {
  3041. id: 1993852,
  3042. login: "yaahc",
  3043. },
  3044. approved: false,
  3045. },
  3046. ],
  3047. issue: FCPIssue {
  3048. id: 1215172,
  3049. number: 82223,
  3050. fk_milestone: None,
  3051. fk_user: 860665,
  3052. fk_assignee: None,
  3053. open: true,
  3054. is_pull_request: false,
  3055. title: "Tracking Issue for `Result::into_ok_or_err` / `feature(result_into_ok_or_err)`",
  3056. body: "Feature gate: `#![feature(result_into_ok_or_err)]`\r\n\r\nThis is a tracking issue for `Result::into_ok_or_err`, a method to get the `T` out of `Result<T, T>` regardless of which variant is active.\r\n\r\n### Public API\r\n\r\n```rust\r\nimpl<T> Result<T, T> {\r\n pub const fn into_ok_or_err(self) -> T;\r\n}\r\n```\r\n\r\n### Steps / History\r\n\r\n- [x] Implementation: #80572\r\n- [ ] Final commenting period (FCP)\r\n- [ ] Stabilization PR\r\n\r\n### Unresolved Questions\r\n\r\n- [ ] ~~What color should the bikeshed be~~ What name should it have?\r\n Some options that have been suggested:\r\n - `Result::into_ok_or_err`\r\n - `Result::ok_or_err`\r\n - `Result::into_either`\r\n - `Result::into_inner`\r\n - `Result::either_value`\r\n - `Result::unwrap_either`\r\n - Several more suggested options are listed in the issue.\r\n - [ ] Do we want a reference version as well, as https://github.com/rust-lang/rust/pull/79315 proposed?",
  3057. locked: false,
  3058. closed_at: None,
  3059. created_at: Some(
  3060. "2021-02-17T17:03:21",
  3061. ),
  3062. updated_at: Some(
  3063. "2022-03-16T21:03:25",
  3064. ),
  3065. labels: [
  3066. "T-libs-api",
  3067. "proposed-final-comment-period",
  3068. "C-tracking-issue",
  3069. "disposition-merge",
  3070. ],
  3071. repository: "rust-lang/rust",
  3072. },
  3073. status_comment: StatusComment {
  3074. id: 1065947793,
  3075. fk_issue: 1215172,
  3076. fk_user: 20760818,
  3077. body: "Team member @m-ou-se has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Amanieu\n* [ ] @BurntSushi\n* [ ] @dtolnay\n* [ ] @joshtriplett\n* [x] @m-ou-se\n* [ ] @yaahc\n\nConcerns:\n\n* rather not (https://github.com/rust-lang/rust/issues/82223#issuecomment-1065985610)\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  3078. created_at: "2022-03-12T19:24:40",
  3079. updated_at: Some(
  3080. "2022-03-16T21:03:25",
  3081. ),
  3082. repository: "rust-lang/rust",
  3083. },
  3084. },
  3085. FullFCP {
  3086. fcp: FCP {
  3087. id: 2209,
  3088. fk_issue: 1370510,
  3089. fk_initiator: 162737,
  3090. fk_initiating_comment: 1066980299,
  3091. disposition: Some(
  3092. "merge",
  3093. ),
  3094. fk_bot_tracking_comment: 1066980319,
  3095. fcp_start: None,
  3096. fcp_closed: false,
  3097. },
  3098. reviews: [
  3099. Review {
  3100. reviewer: Reviewer {
  3101. id: 162737,
  3102. login: "joshtriplett",
  3103. },
  3104. approved: true,
  3105. },
  3106. Review {
  3107. reviewer: Reviewer {
  3108. id: 278509,
  3109. login: "Amanieu",
  3110. },
  3111. approved: true,
  3112. },
  3113. Review {
  3114. reviewer: Reviewer {
  3115. id: 456674,
  3116. login: "BurntSushi",
  3117. },
  3118. approved: false,
  3119. },
  3120. Review {
  3121. reviewer: Reviewer {
  3122. id: 783247,
  3123. login: "m-ou-se",
  3124. },
  3125. approved: false,
  3126. },
  3127. Review {
  3128. reviewer: Reviewer {
  3129. id: 1940490,
  3130. login: "dtolnay",
  3131. },
  3132. approved: false,
  3133. },
  3134. Review {
  3135. reviewer: Reviewer {
  3136. id: 1993852,
  3137. login: "yaahc",
  3138. },
  3139. approved: true,
  3140. },
  3141. ],
  3142. issue: FCPIssue {
  3143. id: 1370510,
  3144. number: 87517,
  3145. fk_milestone: None,
  3146. fk_user: 173127,
  3147. fk_assignee: None,
  3148. open: true,
  3149. is_pull_request: false,
  3150. title: "Tracking Issue for RFC 3107: derive_default_enum",
  3151. body: "<!--\r\nNOTE: For library features, please use the \"Library Tracking Issue\" template instead.\r\n\r\nThank you for creating a tracking issue! 📜 Tracking issues are for tracking a\r\nfeature from implementation to stabilisation. Make sure to include the relevant\r\nRFC for the feature if it has one. Otherwise provide a short summary of the\r\nfeature and link any relevant PRs or issues, and remove any sections that are\r\nnot relevant to the feature.\r\n\r\nRemember to add team labels to the tracking issue.\r\nFor a language team feature, this would e.g., be `T-lang`.\r\nSuch a feature should also be labeled with e.g., `F-my_feature`.\r\nThis label is used to associate issues (e.g., bugs and design questions) to the feature.\r\n-->\r\n\r\nThis is a tracking issue for the RFC 3107: \"`#[derive(Default)]` on enums with a `#[default]` attribute\" (rust-lang/rfcs#3107).\r\nThe feature gate for the issue is `#![feature(derive_default_enum)]`.\r\n\r\n### About tracking issues\r\n\r\nTracking issues are used to record the overall progress of implementation.\r\nThey are also used as hubs connecting to other relevant issues, e.g., bugs or open design questions.\r\nA tracking issue is however *not* meant for large scale discussion, questions, or bug reports about a feature.\r\nInstead, open a dedicated issue for the specific matter and add the relevant feature gate label.\r\n\r\n### Steps\r\n<!--\r\nInclude each step required to complete the feature. Typically this is a PR\r\nimplementing a feature, followed by a PR that stabilises the feature. However\r\nfor larger features an implementation could be broken up into multiple PRs.\r\n-->\r\n\r\n- [x] Implement the RFC (cc @rust-lang/compiler -- can anyone write up mentoring\r\n instructions?)\r\n- [ ] Adjust documentation ([see instructions on rustc-dev-guide][doc-guide])\r\n- [ ] Stabilization PR ([see instructions on rustc-dev-guide][stabilization-guide])\r\n\r\n[stabilization-guide]: https://rustc-dev-guide.rust-lang.org/stabilization_guide.html#stabilization-pr\r\n[doc-guide]: https://rustc-dev-guide.rust-lang.org/stabilization_guide.html#documentation-prs\r\n\r\n### Unresolved Questions\r\n<!--\r\nInclude any open questions that need to be answered before the feature can be\r\nstabilised.\r\n-->\r\n\r\nNone so far\r\n\r\n### Implementation history\r\n\r\n<!--\r\nInclude a list of all the PRs that were involved in implementing the feature.\r\n-->\r\n",
  3152. locked: false,
  3153. closed_at: None,
  3154. created_at: Some(
  3155. "2021-07-27T16:15:22",
  3156. ),
  3157. updated_at: Some(
  3158. "2022-03-19T11:34:23",
  3159. ),
  3160. labels: [
  3161. "T-libs-api",
  3162. "proposed-final-comment-period",
  3163. "C-tracking-issue",
  3164. "disposition-merge",
  3165. "S-tracking-ready-to-stabilize",
  3166. ],
  3167. repository: "rust-lang/rust",
  3168. },
  3169. status_comment: StatusComment {
  3170. id: 1066980319,
  3171. fk_issue: 1370510,
  3172. fk_user: 20760818,
  3173. body: "Team member @joshtriplett has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Amanieu\n* [ ] @BurntSushi\n* [ ] @dtolnay\n* [x] @joshtriplett\n* [ ] @m-ou-se\n* [x] @yaahc\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  3174. created_at: "2022-03-14T15:50:13",
  3175. updated_at: Some(
  3176. "2022-03-19T11:34:23",
  3177. ),
  3178. repository: "rust-lang/rust",
  3179. },
  3180. },
  3181. FullFCP {
  3182. fcp: FCP {
  3183. id: 2210,
  3184. fk_issue: 1586861,
  3185. fk_initiator: 162737,
  3186. fk_initiating_comment: 1067658430,
  3187. disposition: Some(
  3188. "merge",
  3189. ),
  3190. fk_bot_tracking_comment: 1067658436,
  3191. fcp_start: None,
  3192. fcp_closed: false,
  3193. },
  3194. reviews: [
  3195. Review {
  3196. reviewer: Reviewer {
  3197. id: 155238,
  3198. login: "nikomatsakis",
  3199. },
  3200. approved: true,
  3201. },
  3202. Review {
  3203. reviewer: Reviewer {
  3204. id: 162737,
  3205. login: "joshtriplett",
  3206. },
  3207. approved: true,
  3208. },
  3209. Review {
  3210. reviewer: Reviewer {
  3211. id: 173127,
  3212. login: "pnkfelix",
  3213. },
  3214. approved: false,
  3215. },
  3216. Review {
  3217. reviewer: Reviewer {
  3218. id: 5963049,
  3219. login: "cramertj",
  3220. },
  3221. approved: true,
  3222. },
  3223. Review {
  3224. reviewer: Reviewer {
  3225. id: 18526288,
  3226. login: "scottmcm",
  3227. },
  3228. approved: false,
  3229. },
  3230. ],
  3231. issue: FCPIssue {
  3232. id: 1586861,
  3233. number: 94927,
  3234. fk_milestone: None,
  3235. fk_user: 17877264,
  3236. fk_assignee: Some(
  3237. 1606434,
  3238. ),
  3239. open: true,
  3240. is_pull_request: true,
  3241. title: "Stabilize `let_chains` in Rust 1.62.0",
  3242. body: "# Stabilization proposal\r\n\r\nThis PR proposes the stabilization of `#![feature(let_chains)]` in a future-compatibility way that will allow the **possible** addition of the `EXPR is PAT` syntax.\r\n\r\nTracking issue: #53667\r\nVersion: 1.62 (2022-05-17 => beta, 2022-06-30 => stable).\r\n\r\n## What is stabilized\r\n\r\nThe ability to chain let expressions along side local variable declarations or ordinary conditional expressions. For example:\r\n\r\n```rust\r\npub enum Color {\r\n Blue,\r\n Red,\r\n Violet,\r\n}\r\n\r\npub enum Flower {\r\n Rose,\r\n Tulip,\r\n Violet,\r\n}\r\n\r\npub fn roses_are_red_violets_are_blue_printer(\r\n (first_flower, first_flower_color): (Flower, Color),\r\n (second_flower, second_flower_color): (Flower, Color),\r\n pick_up_lines: &[&str],\r\n) {\r\n if let Flower::Rose = first_flower\r\n && let Color::Red = first_flower_color\r\n && let Flower::Violet = second_flower\r\n && let Color::Blue = second_flower_color\r\n && let &[first_pick_up_line, ..] = pick_up_lines\r\n {\r\n println!(\"Roses are red, violets are blue, {}\", first_pick_up_line);\r\n }\r\n}\r\n\r\nfn main() {\r\n roses_are_red_violets_are_blue_printer(\r\n (Flower::Rose, Color::Red),\r\n (Flower::Violet, Color::Blue),\r\n &[\"sugar is sweet and so are you\"],\r\n );\r\n}\r\n```\r\n\r\n## Motivation\r\n\r\nThe main motivation for this feature is improving readability, ergonomics and reducing paper cuts.\r\n\r\nFor more examples, see the [RFC](https://github.com/rust-lang/rfcs/blob/master/text/2497-if-let-chains.md).\r\n\r\n## What isn't stabilized\r\n\r\n* Let chains in match guards (`if_let_guard`)\r\n\r\n* Resolution of divergent non-terminal matchers\r\n\r\n* The `EXPR is PAT` syntax\r\n\r\n## History\r\n\r\n* On 2017-12-24, [RFC: if- and while-let-chains](https://github.com/rust-lang/rfcs/pull/2260)\r\n* On 2018-07-12, [eRFC: if- and while-let-chains, take 2](https://github.com/rust-lang/rfcs/pull/2497)\r\n* On 2018-08-24, [Tracking issue for eRFC 2497, \"if- and while-let-chains, take 2](https://github.com/rust-lang/rust/issues/53667)\r\n* On 2019-03-19, [Run branch cleanup after copy prop](https://github.com/rust-lang/rust/pull/59290)\r\n* On 2019-03-26, [Generalize diagnostic for x = y where bool is the expected type](https://github.com/rust-lang/rust/pull/59439)\r\n* On 2019-04-24, [Introduce hir::ExprKind::Use and employ in for loop desugaring](https://github.com/rust-lang/rust/pull/60225)\r\n* On 2019-03-19, [[let_chains, 1/6] Remove hir::ExprKind::If](https://github.com/rust-lang/rust/pull/59288)\r\n* On 2019-05-15, [[let_chains, 2/6] Introduce Let(..) in AST, remove IfLet + WhileLet and parse let chains](https://github.com/rust-lang/rust/pull/60861)\r\n* On 2019-06-20, [[let_chains, 3/6] And then there was only Loop](https://github.com/rust-lang/rust/pull/61988)\r\n* On 2020-11-22, [Reintroduce hir::ExprKind::If](https://github.com/rust-lang/rust/pull/79328)\r\n* On 2020-12-24, [Introduce hir::ExprKind::Let - Take 2](https://github.com/rust-lang/rust/pull/80357)\r\n* On 2021-02-19, [Lower condition of if expression before it's \"then\" block](https://github.com/rust-lang/rust/pull/82308)\r\n* On 2021-09-01, [Fix drop handling for `if let` expressions](https://github.com/rust-lang/rust/pull/88572)\r\n* On 2021-09-04, [Formally implement let chains](https://github.com/rust-lang/rust/pull/88642)\r\n* On 2022-01-19, [Add tests to ensure that let_chains works with if_let_guard](https://github.com/rust-lang/rust/pull/93086)\r\n* On 2022-01-18, [Introduce `enhanced_binary_op` feature](https://github.com/rust-lang/rust/pull/93049)\r\n* On 2022-01-22, [Fix `let_chains` and `if_let_guard` feature flags](https://github.com/rust-lang/rust/pull/93213)\r\n* On 2022-02-25, [Initiate the inner usage of `let_chains`](https://github.com/rust-lang/rust/pull/94376)\r\n* On 2022-01-28, [[WIP] Introduce ast::StmtKind::LetElse to allow the usage of `let_else` with `let_chains`](https://github.com/rust-lang/rust/pull/93437)\r\n* On 2022-02-26, [1 - Make more use of `let_chains`](https://github.com/rust-lang/rust/pull/94396)\r\n* On 2022-02-26, [2 - Make more use of `let_chains`](https://github.com/rust-lang/rust/pull/94400)\r\n* On 2022-02-27, [3 - Make more use of `let_chains`](https://github.com/rust-lang/rust/pull/94420)\r\n* On 2022-02-28, [4 - Make more use of `let_chains`](https://github.com/rust-lang/rust/pull/94445)\r\n* On 2022-02-28, [5 - Make more use of `let_chains`](https://github.com/rust-lang/rust/pull/94448)\r\n* On 2022-02-28, [6 - Make more use of `let_chains`](https://github.com/rust-lang/rust/pull/94465)\r\n* On 2022-03-01, [7 - Make more use of `let_chains`](https://github.com/rust-lang/rust/pull/94476)\r\n* On 2022-03-01, [8 - Make more use of `let_chains`](https://github.com/rust-lang/rust/pull/94484)\r\n* On 2022-03-01, [9 - Make more use of `let_chains`](https://github.com/rust-lang/rust/pull/94498)\r\n* On 2022-03-08, [Warn users about `||` in let chain expressions](https://github.com/rust-lang/rust/pull/94754)\r\n\r\nFrom the first RFC (2017-12-24) to the theoretical future stabilization day (2022-06-30), it can be said that this feature took 4 years, 6 months and 7 days of research, development, discussions, agreements/consensus and headaches to be settled.\r\n\r\n## Divergent non-terminal matchers\r\n\r\nMore specifically, https://github.com/rust-lang/rust/issues/86730.\r\n\r\n```rust\r\nmacro_rules! mac {\r\n ($e:expr) => {\r\n if $e {\r\n true\r\n } else {\r\n false\r\n }\r\n };\r\n}\r\n\r\nfn main() {\r\n // OK!\r\n assert_eq!(mac!(true && let 1 = 1), true);\r\n\r\n // ERROR! Anything starting with `let` is not considered an expression\r\n assert_eq!(mac!(let 1 = 1 && true), true);\r\n}\r\n```\r\n\r\nTo the best of my knowledge, such error or divergence is orthogonal, does not prevent stabilization and can be tackled independently in the near future or effectively in the next Rust 2024 edition. If not, then https://github.com/c410-f3r/rust/tree/let-macro-blah contains a set of changes that will consider `let` an expression.\r\n\r\nIt is possible that none of the solutions above satisfies all applicable constraints but I personally don't know of any other plausible answers.\r\n\r\n## Alternative syntax\r\n\r\nTaking into account the usefulness of this feature and the overwhelming desire to use both now and in the past, `let PAT = EXPR` will be utilized for stabilization but it doesn't or shall create any obstacle for a **possible** future addition of `EXPR is PAT`.\r\n\r\nThe introductory snippet would then be written as the following.\r\n\r\n```rust\r\nif first_flower is Flower::Rose \r\n && first_flower_color is Color::Red\r\n && second_flower is Flower::Violet\r\n && second_flower_color is Color::Blue\r\n && pick_up_lines is &[first_pick_up_line, ..]\r\n{\r\n println!(\"Roses are red, violets are blue, {}\", first_pick_up_line);\r\n}\r\n```\r\n\r\nJust to reinforce, this PR only unblocks a **possible** future road for `EXPR is PAT` and does emphasize what is better or what is worse.\r\n\r\n## Tests\r\n\r\n* [Verifies the drop order of let chains and ensures it won't change in the future in an unpredictable way](https://github.com/rust-lang/rust/blob/master/src/test/ui/mir/mir_let_chains_drop_order.rs)\r\n\r\n* [AST lowering does not wrap let chains in an `DropTemps` expression](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2497-if-let-chains/ast-lowering-does-not-wrap-let-chains.rs)\r\n\r\n* [Checks pretty printing output](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2497-if-let-chains/ast-pretty-check.rs)\r\n\r\n* [Verifies uninitialized variables due to MIR modifications](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2497-if-let-chains/chains-without-let.rs)\r\n\r\n* [A collection of statements where `let` expressions are forbidden](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs)\r\n\r\n* [All or at least most of the places where let chains are allowed](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2497-if-let-chains/feature-gate.rs)\r\n\r\n* [Ensures that irrefutable lets are allowed in let chains](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2497-if-let-chains/irrefutable-lets.rs)\r\n\r\n* [issue-88498.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2497-if-let-chains/issue-88498.rs), [issue-90722.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2497-if-let-chains/issue-90722.rs), [issue-92145.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2497-if-let-chains/issue-92145.rs) and [issue-93150.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2497-if-let-chains/issue-93150.rs) were bugs found by third parties and fixed overtime.\r\n\r\n* [Indexing was triggering a ICE due to a wrongly constructed MIR graph](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2497-if-let-chains/no-double-assigments.rs)\r\n\r\n* [Protects the precedence of `&&` in relation to other things](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2497-if-let-chains/protect-precedences.rs)\r\n\r\n* [`let_chains`, as well as `if_let_guard`, has a valid MIR graph that evaluates conditional expressions correctly](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2497-if-let-chains/then-else-blocks.rs)\r\n\r\nMost of the infra-structure used by let chains is also used by `if` expressions in stable compiler versions since https://github.com/rust-lang/rust/pull/80357 and https://github.com/rust-lang/rust/pull/88572. As a result, no bugs were found since the integration of https://github.com/rust-lang/rust/pull/88642.\r\n\r\n## Possible future work\r\n\r\n* Let chains in match guards is implemented and working but stabilization is blocked by `if_let_guard`.\r\n\r\n* The usage of `let_chains` with `let_else` is possible but not implemented. Regardless, one attempt was introduced and closed in https://github.com/rust-lang/rust/pull/93437.\r\n\r\nThanks @Centril for creating the RFC and huge thanks (again) to @matthewjasper for all the reviews, mentoring and MIR implementations.\r\n\r\nFixes #53667",
  3243. locked: false,
  3244. closed_at: None,
  3245. created_at: Some(
  3246. "2022-03-14T10:35:54",
  3247. ),
  3248. updated_at: Some(
  3249. "2022-03-22T17:13:56",
  3250. ),
  3251. labels: [
  3252. "T-lang",
  3253. "S-waiting-on-review",
  3254. "proposed-final-comment-period",
  3255. "disposition-merge",
  3256. "I-lang-nominated",
  3257. ],
  3258. repository: "rust-lang/rust",
  3259. },
  3260. status_comment: StatusComment {
  3261. id: 1067658436,
  3262. fk_issue: 1586861,
  3263. fk_user: 20760818,
  3264. body: "Team member @joshtriplett has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @cramertj\n* [x] @joshtriplett\n* [x] @nikomatsakis\n* [ ] @pnkfelix\n* [ ] @scottmcm\n\nConcerns:\n\n* add-test-to-confirm-no-let-else-in-let-chain (https://github.com/rust-lang/rust/pull/94927#issuecomment-1068267198)\n* doc-pr (https://github.com/rust-lang/rust/pull/94927#issuecomment-1068120114)\n* irrefutable-lint (https://github.com/rust-lang/rust/pull/94927#issuecomment-1067658430)\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  3265. created_at: "2022-03-15T07:32:46",
  3266. updated_at: Some(
  3267. "2022-03-22T17:13:56",
  3268. ),
  3269. repository: "rust-lang/rust",
  3270. },
  3271. },
  3272. FullFCP {
  3273. fcp: FCP {
  3274. id: 2215,
  3275. fk_issue: 1583979,
  3276. fk_initiator: 14314532,
  3277. fk_initiating_comment: 1069897254,
  3278. disposition: Some(
  3279. "merge",
  3280. ),
  3281. fk_bot_tracking_comment: 1069897294,
  3282. fcp_start: None,
  3283. fcp_closed: false,
  3284. },
  3285. reviews: [
  3286. Review {
  3287. reviewer: Reviewer {
  3288. id: 43198,
  3289. login: "ehuss",
  3290. },
  3291. approved: false,
  3292. },
  3293. Review {
  3294. reviewer: Reviewer {
  3295. id: 60961,
  3296. login: "epage",
  3297. },
  3298. approved: false,
  3299. },
  3300. Review {
  3301. reviewer: Reviewer {
  3302. id: 162737,
  3303. login: "joshtriplett",
  3304. },
  3305. approved: true,
  3306. },
  3307. Review {
  3308. reviewer: Reviewer {
  3309. id: 3709504,
  3310. login: "Eh2406",
  3311. },
  3312. approved: false,
  3313. },
  3314. Review {
  3315. reviewer: Reviewer {
  3316. id: 14314532,
  3317. login: "weihanglo",
  3318. },
  3319. approved: true,
  3320. },
  3321. ],
  3322. issue: FCPIssue {
  3323. id: 1583979,
  3324. number: 10472,
  3325. fk_milestone: None,
  3326. fk_user: 60961,
  3327. fk_assignee: Some(
  3328. 43198,
  3329. ),
  3330. open: true,
  3331. is_pull_request: true,
  3332. title: "feat: Import cargo-add into cargo",
  3333. body: "### Motivation\r\n\r\nThe reasons I'm aware of are:\r\n- Large interest, see #5586 \r\n- Make it easier to add a dependency when you don't care about the version (instead of having to find it or just using the major version if thats all you remember)\r\n- Provide a guided experience, including\r\n - Catch or prevent errors earlier in the process\r\n - Bring the Manifest format documentation into the terminal via `cargo add --help`\r\n - Using `version` and `path` for `dependencies` but `path` only for `dev-dependencies` (see crate-ci/cargo-release#288 which led to killercup/cargo-edit#480)\r\n\r\n### Drawbacks\r\n\r\n1. This is another area of consideration for new RFCs, like rust-lang/rfcs#3143 (this PR supports it) or rust-lang/rfcs#2906 (implementing it will require updating `cargo-add`)\r\n\r\n2. This is a high UX feature that will draw a lot of attention (ie Issue influx)\r\n\r\ne.g.\r\n- killercup/cargo-edit#521\r\n- killercup/cargo-edit#126\r\n- killercup/cargo-edit#217\r\n\r\nWe've tried to reduce the UX influx by focusing the scope to preserving semantic information (custom sort order, comments, etc) but being opinionated on syntax (style of strings, etc)\r\n\r\n### Behavior\r\n\r\nHelp output\r\n<details>\r\n\r\n```console\r\n$ cargo run -- add --help \r\ncargo-add \r\nAdd dependencies to a Cargo.toml manifest file \r\n \r\nUSAGE: \r\n cargo add [OPTIONS] <DEP>[@<VERSION>] [+<FEATURE>,...] ...\r\n cargo add [OPTIONS] <DEP_PATH> [+<FEATURE>,...] ...\r\n \r\nARGS: \r\n <DEP_ID>... \r\n Reference to a package to add as a dependency\r\n \r\n You can reference a packages by:\r\n - `<name>`, like `cargo add serde` (latest version will be used)\r\n - `<name>@<version-req>`, like `cargo add serde@1` or `cargo add serde@=1.0.38`\r\n - `<path>`, like `cargo add ./crates/parser/`\r\n \r\n Additionally, you can specify features for a dependency by following it with a \r\n `+<FEATURE>`. \r\n \r\nOPTIONS: \r\n --no-default-features\r\n Disable the default features\r\n \r\n --default-features \r\n Re-enable the default features \r\n \r\n -F, --features <FEATURES>\r\n Space-separated list of features to add \r\n \r\n Alternatively, you can specify features for a dependency by following it with a\r\n `+<FEATURE>`. \r\n\r\n --optional \r\n Mark the dependency as optional \r\n \r\n The package name will be exposed as feature of your crate.\r\n \r\n -v, --verbose\r\n Use verbose output (-vv very verbose/build.rs output)\r\n\r\n --no-optional\r\n Mark the dependency as required\r\n \r\n The package will be removed from your features.\r\n\r\n --color <WHEN>\r\n Coloring: auto, always, never\r\n\r\n -r, --rename <NAME>\r\n Rename the dependency\r\n \r\n Example uses:\r\n - Depending on multiple versions of a crate\r\n - Depend on crates with the same name from different registries\r\n\r\n --frozen\r\n Require Cargo.lock and cache are up to date\r\n\r\n --registry <NAME>\r\n Package registry for this dependency\r\n\r\n --locked\r\n Require Cargo.lock is up to date\r\n\r\n --manifest-path <PATH>\r\n Path to Cargo.toml\r\n\r\n -p, --package <SPEC>\r\n Package to modify\r\n\r\n --config <KEY=VALUE>\r\n Override a configuration value (unstable)\r\n\r\n --offline\r\n Run without accessing the network\r\n\r\n -q, --quiet \r\n Do not print cargo log messages \r\n\r\n -Z <FLAG> \r\n Unstable (nightly-only) flags to Cargo, see 'cargo -Z help' for details \r\n \r\n --dry-run \r\n Don't actually write the manifest \r\n \r\n -h, --help \r\n Print help information \r\n \r\nSECTION: \r\n -D, --dev\r\n Add as development dependency \r\n \r\n Dev-dependencies are not used when compiling a package for building, but are used for \r\n compiling tests, examples, and benchmarks.\r\n \r\n These dependencies are not propagated to other packages which depend on this package. \r\n \r\n -B, --build\r\n Add as build dependency\r\n \r\n Build-dependencies are the only dependencies available for use by build scripts\r\n (`build.rs` files). \r\n \r\n --target <TARGET> \r\n Add as dependency to the given target platform \r\n\r\nUNSTABLE: \r\n --git <URI> \r\n Git repository location\r\n \r\n Without any other information, cargo will use latest commit on the main branch. \r\n \r\n --branch <BRANCH> \r\n Git branch to download the crate from \r\n \r\n --tag <TAG> \r\n Git tag to download the crate from \r\n \r\n --rev <REV> \r\n Git reference to download the crate from \r\n \r\n This is the catch all, handling hashes to named references in remote repositories. \r\n\r\nEXAMPLES:\r\n $ cargo add regex --build\r\n $ cargo add trycmd --dev\r\n $ cargo add ./crate/parser/\r\n $ cargo add serde +derive serde_json\r\n```\r\n\r\n</details>\r\n\r\nExample commands\r\n```rust\r\ncargo add regex\r\ncargo add regex serde\r\ncargo add regex@1\r\ncargo add regex@~1.0\r\ncargo add ../dependency\r\n```\r\nFor an exhaustive set of examples, see [tests](https://github.com/killercup/cargo-edit/blob/merge-add/crates/cargo-add/tests/testsuite/cargo_add.rs) and associated snapshots\r\n\r\nParticular points\r\n- Effectively there are two modes\r\n - Fill in any relevant field for one package\r\n - Add multiple packages, erroring for fields that are package-specific (`--git`, `--rename`, `--features`, etc)\r\n- We infer if the `dependencies` table is sorted and preserve that sorting when adding a new dependency\r\n- Adding a workspace dependency\r\n - dev-dependencies always use path\r\n - all other dependencies use version + path\r\n- Behavior is idempotent, allowing you to run `cargo add serde +derive serde_json` safely if you already had a dependency on `serde` but without `serde_json`\r\n- When a registry dependency's version req is unspecified, we'll first reuse the version req from another dependency section in the manifest. If that doesn't exist, we'll use the latest version in the registry as the version req\r\n\r\nFeature gates: `-Zunstable-options`\r\n- `--git` support\r\n - Doesn't populate version in manifest\r\n - Doesn't validate name with what is in repo\r\n - Unsure whether to have `--tag`, `--rev`, `--branch` or to have an inline syntax like pkgids\r\n - Unsure whether to have `--git` or to have an inline syntax that is unambiguous so it works in the multi-package case\r\n- Inline-feature addition `cargo add serde +derive serde_json`\r\n - Intention is to allow documenting dependency groups in a single line\r\n - Gated because we didn't have more time to collect feedback\r\n\r\n### Additional decisions\r\n\r\nAccepting the proposed `cargo-add` as-is assumes the acceptance of the following:\r\n- Add the `-F` short-hand for `--features` to all relevant cargo commands\r\n- Support `@` in pkgids in other commands where we accept `:`\r\n- Add support for `<name>@<version>` in more commands, like `cargo yank` and `cargo install`\r\n\r\n### Alternatives\r\n\r\n- Use `:` instead of `@` for versions\r\n- Flags like `--features`, `--optional`, `--no-default-features` would be position-sensitive, ie they would only apply to the crate immediate preceding them\r\n - This removes the dual-mode nature of the command and remove the need for the `+feature` syntax (`cargo add serde -F derive serde_json`)\r\n - There was concern over the rarity of position-sensitive flags in CLIs for adopting it here\r\n- Support a `--sort` flag to sort the dependencies (existed previously)\r\n - To keep the scope small, we didn't want general manifest editing capabilities\r\n- `--upgrade <POLICY>` flag to choose constraint (existed previously)\r\n - The flag was confusing as-is and we feel we should instead encourage people towards `^`\r\n- `--allow-prerelease` so a `cargo add clap` can choose among pre-releases as well\r\n - We felt the pre-release story is too weak in cargo-generally atm for making it first class in `cargo-add`\r\n\r\n### Prior Art\r\n\r\n- *(Python)* [poetry add](https://python-poetry.org/docs/cli/#add)\r\n - `git+` is needed for inferring git dependencies, no separate `--git` flags\r\n - git branch is specified via a URL fragment, instead of a `--branch`\r\n- *(Javascript)* [yarn add](https://yarnpkg.com/cli/add)\r\n - `name@data` where data can be version, git (with fragment for branch), etc\r\n - `-E` / `--exact`, `-T` / `--tilde`, `-C` / `--caret` to control version requirement operator instead of `--upgrade <policy>` (also controlled through `defaultSemverRangePrefix` in config)\r\n - `--cached` for using the lock file (killercup/cargo-edit#41)\r\n - In addition to `--dev`, it has `--prefer-dev` which will only add the dependency if it doesn't already exist in `dependencies` as well as `dev-dependencies`\r\n - `--mode update-lockfile` will ensure the lock file gets updated as well\r\n- *(Javascript)* [pnpm-add](https://pnpm.io/cli/add)\r\n- *(Javascript)* npm doesn't have a native solution\r\n - Specify version with `@<version>`\r\n - Also overloads `<name>[@<version>]` with path and repo\r\n - Supports a git host-specific protocol for shorthand, like `github:user/repo`\r\n - Uses fragment for git ref, seems to have some kind of special semver syntax for tags?\r\n - Only supports `--save-exact` / `-E` for operators outside of the default\r\n- *(Go)* [go get](https://go.dev/ref/mod#go-get)\r\n - Specify version with `@<version>`\r\n - Remove dependency with `@none`\r\n- *(Haskell)* stack doesn't seem to have a native solution\r\n- *(Julia)* [pkg Add](https://docs.julialang.org/en/v1/stdlib/Pkg/)\r\n- *(Ruby)* [bundle add](https://bundler.io/v2.2/man/bundle-add.1.html)\r\n - Uses `--version` / `-v` instead of `--vers` (we use `--vers` because of `--version` / `-V`)\r\n - `--source` instead of `path` (`path` correlates to manifest field)\r\n - Uses `--git` / `--branch` like `cargo-add`\r\n- *(Dart)* [pub add](https://dart.dev/tools/pub/cmd/pub-add)\r\n - Uses `--git-url` instead of `--git`\r\n - Uses `--git-ref` instead of `--branch`, `--tag`, `--rev`\r\n\r\n### Future Possibilities\r\n\r\n- Update lock file accordingly\r\n- Exploring the idea of a [`--local` flag](https://github.com/killercup/cargo-edit/issues/590)\r\n- Take the MSRV into account when automatically creating version req (https://github.com/killercup/cargo-edit/issues/587)\r\n- Integrate rustsec to report advisories on new dependencies (https://github.com/killercup/cargo-edit/issues/512)\r\n- Integrate with licensing to report license, block add, etc (e.g. https://github.com/killercup/cargo-edit/issues/386)\r\n- Pull version from lock file (https://github.com/killercup/cargo-edit/issues/41)\r\n- Exploring if any vendoring integration would be beneficial (currently errors)\r\n- Upstream `cargo-rm`, `cargo-upgrade`, and `cargo-set-version` (in that order of priority)\r\n- Update crates.io with `cargo add` snippets in addition to or replacing the manifest snippets\r\n\r\nFor more, see https://github.com/killercup/cargo-edit/issues?q=is%3Aissue+is%3Aopen+label%3Acargo-add\r\n\r\n### How should we test and review this PR?\r\n\r\nThis is intentionally broken up into several commits to help reviewing\r\n1. Import of production code from cargo-edit's `merge-add` branch, with only changes made to let it compile (e.g. fixing up of `use` statements).\r\n2. Import of test code / snapshots. The only changes outside of the import were to add the `snapbox` dev-dependency and to `mod cargo_add` into the testsuite\r\n3. This extends the work in #10425 so I could add back in the color highlighting I had to remove as part of switching `cargo-add` from direct termcolor calls to calling into `Shell`\r\n\r\nStructure-wise, this is similar to other commands\r\n- `bin` only defines a CLI and adapts it to an `AddOptions`\r\n- `ops` contains a focused API with everything buried under it\r\n\r\nThe \"op\" contains a directory, instead of just a file, because of the amount of content. Currently, all editing code is contained in there. Most of this will be broken out and reused when other `cargo-edit` commands are added but holding off on that for now to separate out the editing API discussions from just getting the command in.\r\n\r\nWithin the github UI, I'd recommend looking at individual commits (and the `merge-add` branch if interested), skipping commit 2. Commit 2 would be easier to browse locally.\r\n\r\n`cargo-add` is mostly covered by end-to-end tests written using `snapbox`, including error cases. \r\n\r\nThere is additional cleanup that would ideally happen that was excluded intentionally from this PR to keep it better scoped, including\r\n- Consolidating environment variables for end-to-end tests of `cargo`\r\n- Pulling out the editing API, as previously mentioned\r\n - Where the editing API should live (`cargo::edit`?)\r\n - Any more specific naming of types to reduce clashes (e.g. `Dependency` or `Manifest` being fairly generic).\r\n- Possibly sharing `SourceId` creation between `cargo install` and `cargo edit`\r\n- Explore using `snapbox` in more of cargo's tests\r\n\r\nImplementation justifications:\r\n- `dunce` and `pathdiff` dependencies: needed for taking paths relative to the user and make them relative to the manifest being edited\r\n- `indexmap` dependency (already a transitive dependency): Useful for preserving uniqueness while preserving order, like with feature values\r\n- `snapbox` dev-dependency: Originally it was used to make it easy to update tests as the UX changed in prep for merging but it had the added benefit of making some UX bugs easier to notice so they got fixed. Overall, I'd like to see it become the cargo-agnostic version of `cargo-test-support` so there is a larger impact when improvements are made\r\n- `parse_feature` function: `CliFeatures` forces items through a `BTreeSet`, losing the users specified order which we wanted to preserve.\r\n\r\n### Additional Information\r\n\r\nSee also [the internals thread](https://internals.rust-lang.org/t/feedback-on-cargo-add-before-its-merged/16024).\r\n\r\nFixes #5586 ",
  3334. locked: false,
  3335. closed_at: None,
  3336. created_at: Some(
  3337. "2022-03-10T20:05:26",
  3338. ),
  3339. updated_at: Some(
  3340. "2022-03-18T11:22:33",
  3341. ),
  3342. labels: [
  3343. "T-cargo",
  3344. "proposed-final-comment-period",
  3345. "disposition-merge",
  3346. "S-waiting-on-review",
  3347. ],
  3348. repository: "rust-lang/cargo",
  3349. },
  3350. status_comment: StatusComment {
  3351. id: 1069897294,
  3352. fk_issue: 1583979,
  3353. fk_user: 20760818,
  3354. body: "Team member @weihanglo has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [ ] @Eh2406\n* [ ] @ehuss\n* [ ] @epage\n* [x] @joshtriplett\n* [x] @weihanglo\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  3355. created_at: "2022-03-17T02:25:15",
  3356. updated_at: Some(
  3357. "2022-03-18T11:22:32",
  3358. ),
  3359. repository: "rust-lang/cargo",
  3360. },
  3361. },
  3362. ]
  3363. fcp_map: {
  3364. "rust-lang/rust:87074:Tracking Issue for RFC 3128: I/O Safety": FullFCP {
  3365. fcp: FCP {
  3366. id: 2222,
  3367. fk_issue: 1356930,
  3368. fk_initiator: 783247,
  3369. fk_initiating_comment: 1075151992,
  3370. disposition: Some(
  3371. "merge",
  3372. ),
  3373. fk_bot_tracking_comment: 1075152025,
  3374. fcp_start: None,
  3375. fcp_closed: false,
  3376. },
  3377. reviews: [
  3378. Review {
  3379. reviewer: Reviewer {
  3380. id: 162737,
  3381. login: "joshtriplett",
  3382. },
  3383. approved: false,
  3384. },
  3385. Review {
  3386. reviewer: Reviewer {
  3387. id: 278509,
  3388. login: "Amanieu",
  3389. },
  3390. approved: false,
  3391. },
  3392. Review {
  3393. reviewer: Reviewer {
  3394. id: 456674,
  3395. login: "BurntSushi",
  3396. },
  3397. approved: false,
  3398. },
  3399. Review {
  3400. reviewer: Reviewer {
  3401. id: 783247,
  3402. login: "m-ou-se",
  3403. },
  3404. approved: true,
  3405. },
  3406. Review {
  3407. reviewer: Reviewer {
  3408. id: 1940490,
  3409. login: "dtolnay",
  3410. },
  3411. approved: false,
  3412. },
  3413. Review {
  3414. reviewer: Reviewer {
  3415. id: 1993852,
  3416. login: "yaahc",
  3417. },
  3418. approved: false,
  3419. },
  3420. ],
  3421. issue: FCPIssue {
  3422. id: 1356930,
  3423. number: 87074,
  3424. fk_milestone: None,
  3425. fk_user: 162737,
  3426. fk_assignee: None,
  3427. open: true,
  3428. is_pull_request: false,
  3429. title: "Tracking Issue for RFC 3128: I/O Safety",
  3430. body: "Feature gate: `#![feature(io_safety)]`\r\n\r\nThis is a tracking issue for [RFC 3128: I/O Safety](https://github.com/rust-lang/rfcs/pull/3128).\r\n\r\nRaw OS handles such as `RawFd` and `RawHandle` have hazards similar to raw pointers; they may be bogus or may dangle, leading to broken encapsulation boundaries and code whose behavior is impossible to bound in general.\r\n\r\nIntroduce a concept of *I/O safety*, and introduce a new set of types and traits, led by `OwnedFd` and `BorrowedFd`, to support it.\r\n\r\n### Public API\r\n\r\nThe public API on UNIX platforms consists of the types `OwnedFd` and `BorrowedFd`, the trait `AsFd`, and implementations of `AsFd`, `Into<OwnedFd>`, and `From<OwnedFd>` for various types (such as files and sockets).\r\n\r\nThe public API on Windows platforms consists of two sets of parallel types and traits and impls for `OwnedHandle`, `OwnedSocket`, `BorrowedHandle`, `BorrowedSocket`, etc.\r\n\r\n### Steps / History\r\n\r\n- [x] Implementation (based on @sunfishcode's existing work outside of std)\r\n- [ ] Final comment period (FCP)\r\n- [ ] Stabilization PR\r\n\r\n### Unresolved Questions\r\n\r\n- [ ] This RFC doesn't define a formal model for raw handle ownership and lifetimes. The rules for raw handles in this RFC are vague about their identity. What does it mean for a resource lifetime to be associated with a handle if the handle is just an integer type? Do all integer types with the same value share that association?\r\n- [ ] The Rust [reference](https://doc.rust-lang.org/reference/behavior-considered-undefined.html) defines undefined behavior for memory in terms of [LLVM's pointer aliasing rules](http://llvm.org/docs/LangRef.html#pointer-aliasing-rules); I/O could conceivably need a similar concept of handle aliasing rules. This doesn't seem necessary for present practical needs, but it could be explored in the future.",
  3431. locked: false,
  3432. closed_at: None,
  3433. created_at: Some(
  3434. "2021-07-12T03:08:11",
  3435. ),
  3436. updated_at: Some(
  3437. "2022-03-22T13:02:42",
  3438. ),
  3439. labels: [
  3440. "T-libs-api",
  3441. "proposed-final-comment-period",
  3442. "C-tracking-issue",
  3443. "disposition-merge",
  3444. "A-io",
  3445. ],
  3446. repository: "rust-lang/rust",
  3447. },
  3448. status_comment: StatusComment {
  3449. id: 1075152025,
  3450. fk_issue: 1356930,
  3451. fk_user: 20760818,
  3452. body: "Team member @m-ou-se has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [ ] @Amanieu\n* [ ] @BurntSushi\n* [ ] @dtolnay\n* [ ] @joshtriplett\n* [x] @m-ou-se\n* [ ] @yaahc\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  3453. created_at: "2022-03-22T13:02:40",
  3454. updated_at: Some(
  3455. "2022-03-22T13:02:42",
  3456. ),
  3457. repository: "rust-lang/rust",
  3458. },
  3459. },
  3460. "rust-lang/reference:1163:Clarify guarantees provided by repr(packed)": FullFCP {
  3461. fcp: FCP {
  3462. id: 2225,
  3463. fk_issue: 1554600,
  3464. fk_initiator: 155238,
  3465. fk_initiating_comment: 1075521037,
  3466. disposition: Some(
  3467. "merge",
  3468. ),
  3469. fk_bot_tracking_comment: 1075521903,
  3470. fcp_start: None,
  3471. fcp_closed: false,
  3472. },
  3473. reviews: [
  3474. Review {
  3475. reviewer: Reviewer {
  3476. id: 155238,
  3477. login: "nikomatsakis",
  3478. },
  3479. approved: true,
  3480. },
  3481. Review {
  3482. reviewer: Reviewer {
  3483. id: 162737,
  3484. login: "joshtriplett",
  3485. },
  3486. approved: false,
  3487. },
  3488. Review {
  3489. reviewer: Reviewer {
  3490. id: 173127,
  3491. login: "pnkfelix",
  3492. },
  3493. approved: false,
  3494. },
  3495. Review {
  3496. reviewer: Reviewer {
  3497. id: 5963049,
  3498. login: "cramertj",
  3499. },
  3500. approved: false,
  3501. },
  3502. Review {
  3503. reviewer: Reviewer {
  3504. id: 18526288,
  3505. login: "scottmcm",
  3506. },
  3507. approved: false,
  3508. },
  3509. ],
  3510. issue: FCPIssue {
  3511. id: 1554600,
  3512. number: 1163,
  3513. fk_milestone: None,
  3514. fk_user: 1046063,
  3515. fk_assignee: None,
  3516. open: true,
  3517. is_pull_request: true,
  3518. title: "Clarify guarantees provided by repr(packed)",
  3519. body: "Clarify that `repr(packed)` minimizes inter-field padding and, in the special case of `repr(packed(1))`/`repr(packed)`, guarantees no inter-field padding.",
  3520. locked: false,
  3521. closed_at: None,
  3522. created_at: Some(
  3523. "2022-02-09T14:32:29",
  3524. ),
  3525. updated_at: Some(
  3526. "2022-03-22T20:03:06",
  3527. ),
  3528. labels: [
  3529. "I-lang-nominated",
  3530. "T-lang",
  3531. ],
  3532. repository: "rust-lang/reference",
  3533. },
  3534. status_comment: StatusComment {
  3535. id: 1075521903,
  3536. fk_issue: 1554600,
  3537. fk_user: 20760818,
  3538. body: "Team member @nikomatsakis has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [ ] @cramertj\n* [ ] @joshtriplett\n* [x] @nikomatsakis\n* [ ] @pnkfelix\n* [ ] @scottmcm\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  3539. created_at: "2022-03-22T19:01:41",
  3540. updated_at: Some(
  3541. "2022-03-22T19:01:42",
  3542. ),
  3543. repository: "rust-lang/reference",
  3544. },
  3545. },
  3546. "rust-lang/rust:93628:Stabilize `let else`": FullFCP {
  3547. fcp: FCP {
  3548. id: 2165,
  3549. fk_issue: 1543435,
  3550. fk_initiator: 162737,
  3551. fk_initiating_comment: 1029383577,
  3552. disposition: Some(
  3553. "merge",
  3554. ),
  3555. fk_bot_tracking_comment: 1029383585,
  3556. fcp_start: None,
  3557. fcp_closed: false,
  3558. },
  3559. reviews: [
  3560. Review {
  3561. reviewer: Reviewer {
  3562. id: 155238,
  3563. login: "nikomatsakis",
  3564. },
  3565. approved: true,
  3566. },
  3567. Review {
  3568. reviewer: Reviewer {
  3569. id: 162737,
  3570. login: "joshtriplett",
  3571. },
  3572. approved: true,
  3573. },
  3574. Review {
  3575. reviewer: Reviewer {
  3576. id: 173127,
  3577. login: "pnkfelix",
  3578. },
  3579. approved: true,
  3580. },
  3581. Review {
  3582. reviewer: Reviewer {
  3583. id: 5963049,
  3584. login: "cramertj",
  3585. },
  3586. approved: true,
  3587. },
  3588. Review {
  3589. reviewer: Reviewer {
  3590. id: 18526288,
  3591. login: "scottmcm",
  3592. },
  3593. approved: false,
  3594. },
  3595. ],
  3596. issue: FCPIssue {
  3597. id: 1543435,
  3598. number: 93628,
  3599. fk_milestone: None,
  3600. fk_user: 8872119,
  3601. fk_assignee: Some(
  3602. 31162821,
  3603. ),
  3604. open: true,
  3605. is_pull_request: true,
  3606. title: "Stabilize `let else`",
  3607. body: ":tada: **Stabilizes the `let else` feature, added by [RFC 3137](https://github.com/rust-lang/rfcs/pull/3137).** :tada: \r\n\r\nReference PR: https://github.com/rust-lang/reference/pull/1156\r\n\r\nFiling a draft as it is still subject to FCP approval.\r\n\r\ncloses #87335 (`let else` tracking issue)\r\n\r\nFCP: https://github.com/rust-lang/rust/pull/93628#issuecomment-1029383585\r\n\r\n----------\r\n\r\n## Stabilization report\r\n\r\n### Summary\r\n\r\nThe feature allows refutable patterns in `let` statements if the expression is\r\nfollowed by a diverging `else`:\r\n\r\n```Rust\r\nfn get_count_item(s: &str) -> (u64, &str) {\r\n let mut it = s.split(' ');\r\n let (Some(count_str), Some(item)) = (it.next(), it.next()) else {\r\n panic!(\"Can't segment count item pair: '{s}'\");\r\n };\r\n let Ok(count) = u64::from_str(count_str) else {\r\n panic!(\"Can't parse integer: '{count_str}'\");\r\n };\r\n (count, item)\r\n}\r\nassert_eq!(get_count_item(\"3 chairs\"), (3, \"chairs\"));\r\n```\r\n\r\n### Differences from the RFC / Desugaring\r\n\r\nOutside of desugaring I'm not aware of any differences between the implementation and the RFC. The chosen desugaring has been changed from the RFC's [original](https://rust-lang.github.io/rfcs/3137-let-else.html#reference-level-explanations). You can read a detailed discussion of the implementation history of it in @cormacrelf 's [summary](https://github.com/rust-lang/rust/pull/93628#issuecomment-1041143670) in this thread, as well as the [followup](https://github.com/rust-lang/rust/pull/93628#issuecomment-1046598419).\r\n\r\n### Test cases\r\n\r\nAdded by df9a2e0687895731e12f4a2651e8d70acd08872d:\r\n\r\n* [`ui/pattern/usefulness/top-level-alternation.rs`](https://github.com/rust-lang/rust/blob/1.58.1/src/test/ui/pattern/usefulness/top-level-alternation.rs) to ensure the unreachable pattern lint visits patterns inside `let else`.\r\n\r\nAdded by 5b95df4bdc330f34213812ad65cae86ced90d80c:\r\n\r\n* [`ui/let-else/let-else-bool-binop-init.rs`](https://github.com/rust-lang/rust/blob/1.58.1/src/test/ui/let-else/let-else-bool-binop-init.rs) to ensure that no lazy boolean expressions (using `&&` or `||`) are allowed in the expression, as the RFC mandates.\r\n* [`ui/let-else/let-else-brace-before-else.rs`](https://github.com/rust-lang/rust/blob/1.58.1/src/test/ui/let-else/let-else-brace-before-else.rs) to ensure that no `}` directly preceding the `else` is allowed in the expression, as the RFC mandates.\r\n* [`ui/let-else/let-else-check.rs`](https://github.com/rust-lang/rust/blob/1.58.1/src/test/ui/let-else/let-else-check.rs) to ensure that `#[allow(...)]` attributes added to the entire `let` statement apply for the `else` block.\r\n* [`ui/let-else/let-else-irrefutable.rs`](https://github.com/rust-lang/rust/blob/1.58.1/src/test/ui/let-else/let-else-irrefutable.rs) to ensure that the `irrefutable_let_patterns` lint fires.\r\n* [`ui/let-else/let-else-missing-semicolon.rs`](https://github.com/rust-lang/rust/blob/1.58.1/src/test/ui/let-else/let-else-missing-semicolon.rs) to ensure the presence of semicolons at the end of the `let` statement.\r\n* [`ui/let-else/let-else-non-diverging.rs`](https://github.com/rust-lang/rust/blob/1.58.1/src/test/ui/let-else/let-else-non-diverging.rs) to ensure the `else` block diverges.\r\n* [`ui/let-else/let-else-run-pass.rs`](https://github.com/rust-lang/rust/blob/1.58.1/src/test/ui/let-else/let-else-run-pass.rs) to ensure the feature works in some simple test case settings.\r\n* [`ui/let-else/let-else-scope.rs`](https://github.com/rust-lang/rust/blob/1.58.1/src/test/ui/let-else/let-else-scope.rs) to ensure the bindings created by the outer `let` expression are not available in the `else` block of it.\r\n\r\nAdded by bf7c32a4477a76bfd18fdcd8f45a939cbed82d34:\r\n\r\n* [`ui/let-else/issue-89960.rs`](https://github.com/rust-lang/rust/blob/1.58.1/src/test/ui/let-else/issue-89960.rs) as a regression test for the ICE-on-error bug #89960 . Later in 102b9125e1cefbb8ed8408d2db3f9f7d5afddbf0 this got removed in favour of more comprehensive tests.\r\n\r\nAdded by 856541963ce95ef4f7d4a81784bb5002ccf63c93:\r\n\r\n* [`ui/let-else/let-else-if.rs`](https://github.com/rust-lang/rust/blob/1.58.1/src/test/ui/let-else/let-else-if.rs) to test for the improved error message that points out that `let else if` is not possible.\r\n\r\nAdded by 9b45713b6c1775f0103a1ebee6ab7c6d9b781a21:\r\n\r\n* [`ui/let-else/let-else-allow-unused.rs`](https://github.com/rust-lang/rust/blob/master/src/test/ui/let-else/let-else-allow-unused.rs) as a regression test for #89807, to ensure that `#[allow(...)]` attributes added to the entire `let` statement apply for bindings created by the `let else` pattern.\r\n\r\nAdded by 61bcd8d3075471b3867428788c49f54fffe53f52:\r\n\r\n* [`ui/let-else/let-else-non-copy.rs`](https://github.com/rust-lang/rust/blob/master/src/test/ui/let-else/let-else-non-copy.rs) to ensure that a copy is performed out of non-copy wrapper types. This mirrors `if let` behaviour. The test case bases on rustc internal changes originally meant for #89933 but then removed from the PR due to the error prior to the improvements of #89841.\r\n* [`ui/let-else/let-else-source-expr-nomove-pass.rs `](https://github.com/rust-lang/rust/blob/master/src/test/ui/let-else/let-else-source-expr-nomove-pass.rs) to ensure that while there is a move of the binding in the successful case, the `else` case can still access the non-matching value. This mirrors `if let` behaviour.\r\n\r\nAdded by 102b9125e1cefbb8ed8408d2db3f9f7d5afddbf0:\r\n\r\n* [`ui/let-else/let-else-ref-bindings.rs`](https://github.com/rust-lang/rust/blob/master/src/test/ui/let-else/let-else-ref-bindings.rs) and [`ui/let-else/let-else-ref-bindings-pass.rs `](https://github.com/rust-lang/rust/blob/master/src/test/ui/let-else/let-else-ref-bindings-pass.rs) to check `ref` and `ref mut` keywords in the pattern work correctly and error when needed.\r\n\r\nAdded by 2715c5f984fda7faa156d1c9cf91aa4934f0e00f:\r\n\r\n* Match ergonomic tests adapted from the `rfc2005` test suite.\r\n\r\nAdded by fec8a507a27de1b08a0b95592dc8ec93bf0a321a:\r\n\r\n* [`ui/let-else/let-else-deref-coercion-annotated.rs`](https://github.com/rust-lang/rust/blob/master/src/test/ui/let-else/let-else-deref-coercion-annotated.rs) and [`ui/let-else/let-else-deref-coercion.rs`](https://github.com/rust-lang/rust/blob/master/src/test/ui/let-else/let-else-deref-coercion.rs) to check deref coercions.\r\n\r\n#### Added since this stabilization report was originally written (2022-02-09)\r\n\r\nAdded by 76ea56667703ac06689ff1d6fba5d170fa7392a7:\r\n\r\n* [`ui/let-else/let-else-destructuring.rs`](https://github.com/rust-lang/rust/blob/76ea56667703ac06689ff1d6fba5d170fa7392a7/src/test/ui/let-else/let-else-destructuring.rs) to give a nice error message if an user tries to do an assignment with a (possibly refutable) pattern and an `else` block, like asked for in #93995.\r\n\r\nAdded by e7730dcb7eb29a10ee73f269f4dc6e9d606db0da:\r\n\r\n* [`ui/let-else/let-else-allow-in-expr.rs`](https://github.com/rust-lang/rust/blob/master/src/test/ui/let-else/let-else-allow-in-expr.rs) to test whether `#[allow(unused_variables)]` works in the expr, as well as its non presence, as well as putting it on the entire `let else` *affects* the expr, too. This was adding a missing test as pointed out by the stabilization report.\r\n* Expansion of `ui/let-else/let-else-allow-unused.rs` and `ui/let-else/let-else-check.rs` to ensure that non-presence of `#[allow(unused)]` does issue the unused lint. This was adding a missing test case as pointed out by the stabilization report.\r\n\r\nAdded by 5bd71063b3810d977aa376d1e6dd7cec359330cc:\r\n\r\n* [`ui/let-else/let-else-slicing-error.rs`](https://github.com/rust-lang/rust/blob/master/src/test/ui/let-else/let-else-slicing-error.rs), a regression test for #92069, which got fixed without addition of a regression test. This resolves a missing test as pointed out by the stabilization report.\r\n\r\nAdded by this PR:\r\n\r\n* `ui/let-else/let-else.rs`, a simple run-pass check, similar to `ui/let-else/let-else-run-pass.rs`.\r\n\r\nAdded by #94012:\r\n\r\n* TBD, the PR is not yet merged.\r\n\r\n### Things not currently tested\r\n\r\n* ~~The `#[allow(...)]` tests check whether allow works, but they don't check whether the non-presence of allow causes a lint to fire.~~ → *test added by e7730dcb7eb29a10ee73f269f4dc6e9d606db0da*\r\n* ~~There is no `#[allow(...)]` test for the expression, as there are tests for the pattern and the else block.~~ → *test added by e7730dcb7eb29a10ee73f269f4dc6e9d606db0da*\r\n* ~~`let-else-brace-before-else.rs` forbids the `let ... = {} else {}` pattern and there is a rustfix to obtain `let ... = ({}) else {}`. I'm not sure whether the `.fixed` files are checked by the tooling that they compile. But if there is no such check, it would be neat to make sure that `let ... = ({}) else {}` compiles.~~ → *test added by e7730dcb7eb29a10ee73f269f4dc6e9d606db0da*\r\n* ~~#92069 got closed as fixed, but no regression test was added. Not sure it's worth to add one.~~ → *test added by 5bd71063b3810d977aa376d1e6dd7cec359330cc*\r\n\r\nDon't think these missing tests should block stabilization, they are rather details. But feel free to disagree.\r\n\r\n### Possible future work / Refutable destructuring assignments\r\n\r\n[RFC 2909](https://rust-lang.github.io/rfcs/2909-destructuring-assignment.html) specifies destructuring assignment, allowing statements like `FooBar { a, b, c } = foo();`.\r\nAs it was stabilized, destructuring assignment only allows *irrefutable* patterns, which before the advent of `let else` were the only patterns that `let` supported.\r\nSo the combination of `let else` and destructuring assignments gives reason to think about extensions of the destructuring assignments feature that allow refutable patterns, discussed in #93995.\r\n\r\nA naive mapping of `let else` to destructuring assignments in the form of `Some(v) = foo() else { ... };` might not be the ideal way. `let else` needs a diverging `else` clause as it introduces new bindings, while assignments have a default behaviour to fall back to if the pattern does not match, in the form of not performing the assignment. Thus, there is no good case to require divergence, or even an `else` clause at all, beyond the need for having *some* introducer syntax so that it is clear to readers that the assignment is not a given (enums and structs look similar). There are better candidates for introducer syntax however than an empty `else {}` clause, like `maybe` which could be added as a keyword on an edition boundary:\r\n\r\n```Rust\r\nlet mut v = 0;\r\nmaybe Some(v) = foo(&v);\r\nmaybe Some(v) = foo(&v) else { bar() };\r\n```\r\n\r\nFurther design discussion is left to an RFC, or the linked issue.",
  3608. locked: false,
  3609. closed_at: None,
  3610. created_at: Some(
  3611. "2022-02-03T19:28:27",
  3612. ),
  3613. updated_at: Some(
  3614. "2022-03-22T17:12:48",
  3615. ),
  3616. labels: [
  3617. "T-rustdoc",
  3618. "T-lang",
  3619. "relnotes",
  3620. "S-waiting-on-author",
  3621. "proposed-final-comment-period",
  3622. "disposition-merge",
  3623. "needs-fcp",
  3624. "S-waiting-on-fcp",
  3625. ],
  3626. repository: "rust-lang/rust",
  3627. },
  3628. status_comment: StatusComment {
  3629. id: 1029383585,
  3630. fk_issue: 1543435,
  3631. fk_user: 20760818,
  3632. body: "Team member @joshtriplett has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @cramertj\n* [x] @joshtriplett\n* [x] @nikomatsakis\n* [x] @pnkfelix\n* [ ] @scottmcm\n\nConcerns:\n\n* need-consistency-rvalue-temporary-rules-between-let-and-let-else (https://github.com/rust-lang/rust/pull/93628#issuecomment-1055738523)\n* ~~not-while-rustfmt-breaks-on-it~~ resolved by https://github.com/rust-lang/rust/pull/93628#issuecomment-1032936704\n* ~~semicolon~~ resolved by https://github.com/rust-lang/rust/pull/93628#issuecomment-1059799661\n* ~~stabilization-report~~ resolved by https://github.com/rust-lang/rust/pull/93628#issuecomment-1033846359\n* ~~summarize-concerns~~ resolved by https://github.com/rust-lang/rust/pull/93628#issuecomment-1056785904\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  3633. created_at: "2022-02-03T20:43:04",
  3634. updated_at: Some(
  3635. "2022-03-22T17:12:48",
  3636. ),
  3637. repository: "rust-lang/rust",
  3638. },
  3639. },
  3640. "rust-lang/rust:94786:Document NonZeroXxx layout guarantees": FullFCP {
  3641. fcp: FCP {
  3642. id: 2203,
  3643. fk_issue: 1582911,
  3644. fk_initiator: 162737,
  3645. fk_initiating_comment: 1064599945,
  3646. disposition: Some(
  3647. "merge",
  3648. ),
  3649. fk_bot_tracking_comment: 1064599953,
  3650. fcp_start: None,
  3651. fcp_closed: false,
  3652. },
  3653. reviews: [
  3654. Review {
  3655. reviewer: Reviewer {
  3656. id: 162737,
  3657. login: "joshtriplett",
  3658. },
  3659. approved: true,
  3660. },
  3661. Review {
  3662. reviewer: Reviewer {
  3663. id: 278509,
  3664. login: "Amanieu",
  3665. },
  3666. approved: true,
  3667. },
  3668. Review {
  3669. reviewer: Reviewer {
  3670. id: 456674,
  3671. login: "BurntSushi",
  3672. },
  3673. approved: false,
  3674. },
  3675. Review {
  3676. reviewer: Reviewer {
  3677. id: 783247,
  3678. login: "m-ou-se",
  3679. },
  3680. approved: false,
  3681. },
  3682. Review {
  3683. reviewer: Reviewer {
  3684. id: 1940490,
  3685. login: "dtolnay",
  3686. },
  3687. approved: true,
  3688. },
  3689. Review {
  3690. reviewer: Reviewer {
  3691. id: 1993852,
  3692. login: "yaahc",
  3693. },
  3694. approved: true,
  3695. },
  3696. ],
  3697. issue: FCPIssue {
  3698. id: 1582911,
  3699. number: 94786,
  3700. fk_milestone: None,
  3701. fk_user: 1046063,
  3702. fk_assignee: Some(
  3703. 162737,
  3704. ),
  3705. open: true,
  3706. is_pull_request: true,
  3707. title: "Document NonZeroXxx layout guarantees",
  3708. body: "Document that `NonZeroXxx` has the same layout and bit validity as `Xxx` with the exception of `0`.",
  3709. locked: false,
  3710. closed_at: None,
  3711. created_at: Some(
  3712. "2022-03-09T21:53:25",
  3713. ),
  3714. updated_at: Some(
  3715. "2022-03-16T21:05:45",
  3716. ),
  3717. labels: [
  3718. "T-libs-api",
  3719. "S-waiting-on-review",
  3720. "proposed-final-comment-period",
  3721. "disposition-merge",
  3722. ],
  3723. repository: "rust-lang/rust",
  3724. },
  3725. status_comment: StatusComment {
  3726. id: 1064599953,
  3727. fk_issue: 1582911,
  3728. fk_user: 20760818,
  3729. body: "Team member @joshtriplett has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Amanieu\n* [ ] @BurntSushi\n* [x] @dtolnay\n* [x] @joshtriplett\n* [ ] @m-ou-se\n* [x] @yaahc\n\nConcerns:\n\n* implications (https://github.com/rust-lang/rust/pull/94786#issuecomment-1065261648)\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  3730. created_at: "2022-03-10T23:09:24",
  3731. updated_at: Some(
  3732. "2022-03-16T21:05:45",
  3733. ),
  3734. repository: "rust-lang/rust",
  3735. },
  3736. },
  3737. "rust-lang/rust:94640:Partially stabilize `(const_)slice_ptr_len` feature by stabilizing `NonNull::len`": FullFCP {
  3738. fcp: FCP {
  3739. id: 2206,
  3740. fk_issue: 1578761,
  3741. fk_initiator: 783247,
  3742. fk_initiating_comment: 1065939865,
  3743. disposition: Some(
  3744. "merge",
  3745. ),
  3746. fk_bot_tracking_comment: 1065939867,
  3747. fcp_start: None,
  3748. fcp_closed: false,
  3749. },
  3750. reviews: [
  3751. Review {
  3752. reviewer: Reviewer {
  3753. id: 162737,
  3754. login: "joshtriplett",
  3755. },
  3756. approved: false,
  3757. },
  3758. Review {
  3759. reviewer: Reviewer {
  3760. id: 278509,
  3761. login: "Amanieu",
  3762. },
  3763. approved: false,
  3764. },
  3765. Review {
  3766. reviewer: Reviewer {
  3767. id: 456674,
  3768. login: "BurntSushi",
  3769. },
  3770. approved: false,
  3771. },
  3772. Review {
  3773. reviewer: Reviewer {
  3774. id: 783247,
  3775. login: "m-ou-se",
  3776. },
  3777. approved: true,
  3778. },
  3779. Review {
  3780. reviewer: Reviewer {
  3781. id: 1940490,
  3782. login: "dtolnay",
  3783. },
  3784. approved: true,
  3785. },
  3786. Review {
  3787. reviewer: Reviewer {
  3788. id: 1993852,
  3789. login: "yaahc",
  3790. },
  3791. approved: true,
  3792. },
  3793. ],
  3794. issue: FCPIssue {
  3795. id: 1578761,
  3796. number: 94640,
  3797. fk_milestone: None,
  3798. fk_user: 81013316,
  3799. fk_assignee: Some(
  3800. 1993852,
  3801. ),
  3802. open: true,
  3803. is_pull_request: true,
  3804. title: "Partially stabilize `(const_)slice_ptr_len` feature by stabilizing `NonNull::len`",
  3805. body: "This PR partially stabilizes features `const_slice_ptr_len` and `slice_ptr_len` by only stabilizing `NonNull::len`. This partial stabilization is tracked under features `slice_ptr_len_nonnull` and `const_slice_ptr_len_nonnull`, for which this PR can serve as the tracking issue.\r\n\r\nTo summarize the discussion from #71146 leading up to this partial stabilization request:\r\n\r\nIt's currently a bit footgunny to obtain the length of a raw slice pointer, stabilization of `NonNull:len` will help with removing these footguns. Some example footguns are:\r\n\r\n```rust\r\n/// # Safety\r\n/// The caller must ensure that `ptr`:\r\n/// 1. does not point to memory that was previously allocated but is now deallocated;\r\n/// 2. is within the bounds of a single allocated object;\r\n/// 3. does not to point to a slice for which the length exceeds `isize::MAX` bytes;\r\n/// 4. points to a properly aligned address;\r\n/// 5. does not point to uninitialized memory;\r\n/// 6. does not point to a mutably borrowed memory location.\r\npub unsafe fn ptr_len<T>(ptr: core::ptr::NonNull<[T]>) -> usize {\r\n (&*ptr.as_ptr()).len()\r\n}\r\n```\r\n\r\nA slightly less complicated version (but still more complicated than it needs to be):\r\n\r\n```rust\r\n/// # Safety\r\n/// The caller must ensure that the start of `ptr`:\r\n/// 1. does not point to memory that was previously allocated but is now deallocated;\r\n/// 2. must be within the bounds of a single allocated object.\r\npub unsafe fn ptr_len<T>(ptr: NonNull<[T]>) -> usize {\r\n (&*(ptr.as_ptr() as *const [()])).len()\r\n}\r\n```\r\n\r\nThis PR does not stabilize `<*const [T]>::len` and `<*mut [T]>::len` because the tracking issue #71146 list a potential blocker for these methods, but this blocker [does not apply](https://github.com/rust-lang/rust/issues/71146#issuecomment-808735714) to `NonNull::len`.\r\n\r\nWe should probably also ping the [Constant Evaluation WG](https://github.com/rust-lang/const-eval) since this PR includes a `#[rustc_allow_const_fn_unstable(const_slice_ptr_len)]`. My instinct here is that this will probably be okay because the pointer is not actually dereferenced and `len()` does not touch the address component of the pointer, but would be best to double check :)\r\n\r\nOne potential down-side was raised that stabilizing `NonNull::len` could lead to encouragement of coding patterns like:\r\n\r\n```\r\npub fn ptr_len<T>(ptr: *mut [T]) -> usize {\r\n NonNull::new(ptr).unwrap().len()\r\n}\r\n```\r\n\r\nwhich unnecessarily assert non-nullness. However, these are much less of a footgun than the above examples and this should be resolved when `slice_ptr_len` fully stabilizes eventually.\r\n",
  3806. locked: false,
  3807. closed_at: None,
  3808. created_at: Some(
  3809. "2022-03-05T11:09:04",
  3810. ),
  3811. updated_at: Some(
  3812. "2022-03-18T17:21:27",
  3813. ),
  3814. labels: [
  3815. "T-libs-api",
  3816. "proposed-final-comment-period",
  3817. "disposition-merge",
  3818. "needs-fcp",
  3819. "S-waiting-on-fcp",
  3820. ],
  3821. repository: "rust-lang/rust",
  3822. },
  3823. status_comment: StatusComment {
  3824. id: 1065939867,
  3825. fk_issue: 1578761,
  3826. fk_user: 20760818,
  3827. body: "Team member @m-ou-se has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [ ] @Amanieu\n* [ ] @BurntSushi\n* [x] @dtolnay\n* [ ] @joshtriplett\n* [x] @m-ou-se\n* [x] @yaahc\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  3828. created_at: "2022-03-12T18:44:19",
  3829. updated_at: Some(
  3830. "2022-03-18T17:20:57",
  3831. ),
  3832. repository: "rust-lang/rust",
  3833. },
  3834. },
  3835. "rust-lang/rfcs:3191:New Rust attribute to support embedding debugger visualizers": FullFCP {
  3836. fcp: FCP {
  3837. id: 2202,
  3838. fk_issue: 1458601,
  3839. fk_initiator: 831192,
  3840. fk_initiating_comment: 1064452035,
  3841. disposition: Some(
  3842. "merge",
  3843. ),
  3844. fk_bot_tracking_comment: 1064452047,
  3845. fcp_start: None,
  3846. fcp_closed: false,
  3847. },
  3848. reviews: [
  3849. Review {
  3850. reviewer: Reviewer {
  3851. id: 77424,
  3852. login: "eddyb",
  3853. },
  3854. approved: true,
  3855. },
  3856. Review {
  3857. reviewer: Reviewer {
  3858. id: 155238,
  3859. login: "nikomatsakis",
  3860. },
  3861. approved: true,
  3862. },
  3863. Review {
  3864. reviewer: Reviewer {
  3865. id: 162737,
  3866. login: "joshtriplett",
  3867. },
  3868. approved: true,
  3869. },
  3870. Review {
  3871. reviewer: Reviewer {
  3872. id: 173127,
  3873. login: "pnkfelix",
  3874. },
  3875. approved: true,
  3876. },
  3877. Review {
  3878. reviewer: Reviewer {
  3879. id: 332036,
  3880. login: "oli-obk",
  3881. },
  3882. approved: true,
  3883. },
  3884. Review {
  3885. reviewer: Reviewer {
  3886. id: 679122,
  3887. login: "nagisa",
  3888. },
  3889. approved: false,
  3890. },
  3891. Review {
  3892. reviewer: Reviewer {
  3893. id: 831192,
  3894. login: "wesleywiser",
  3895. },
  3896. approved: true,
  3897. },
  3898. Review {
  3899. reviewer: Reviewer {
  3900. id: 1295100,
  3901. login: "davidtwco",
  3902. },
  3903. approved: true,
  3904. },
  3905. Review {
  3906. reviewer: Reviewer {
  3907. id: 1408859,
  3908. login: "Aaron1011",
  3909. },
  3910. approved: false,
  3911. },
  3912. Review {
  3913. reviewer: Reviewer {
  3914. id: 1606434,
  3915. login: "estebank",
  3916. },
  3917. approved: true,
  3918. },
  3919. Review {
  3920. reviewer: Reviewer {
  3921. id: 1822483,
  3922. login: "cjgillot",
  3923. },
  3924. approved: true,
  3925. },
  3926. Review {
  3927. reviewer: Reviewer {
  3928. id: 1825894,
  3929. login: "michaelwoerister",
  3930. },
  3931. approved: true,
  3932. },
  3933. Review {
  3934. reviewer: Reviewer {
  3935. id: 5751617,
  3936. login: "petrochenkov",
  3937. },
  3938. approved: true,
  3939. },
  3940. Review {
  3941. reviewer: Reviewer {
  3942. id: 5963049,
  3943. login: "cramertj",
  3944. },
  3945. approved: true,
  3946. },
  3947. Review {
  3948. reviewer: Reviewer {
  3949. id: 18526288,
  3950. login: "scottmcm",
  3951. },
  3952. approved: true,
  3953. },
  3954. Review {
  3955. reviewer: Reviewer {
  3956. id: 20113453,
  3957. login: "matthewjasper",
  3958. },
  3959. approved: false,
  3960. },
  3961. Review {
  3962. reviewer: Reviewer {
  3963. id: 29864074,
  3964. login: "lcnr",
  3965. },
  3966. approved: false,
  3967. },
  3968. ],
  3969. issue: FCPIssue {
  3970. id: 1458601,
  3971. number: 3191,
  3972. fk_milestone: None,
  3973. fk_user: 91507758,
  3974. fk_assignee: None,
  3975. open: true,
  3976. is_pull_request: true,
  3977. title: "New Rust attribute to support embedding debugger visualizers",
  3978. body: "This RFC adds support for a new Rust attribute that will embed a debugger visualizer into a PDB/ELF.\r\n\r\n[Internals thread](https://internals.rust-lang.org/t/pre-rfc-natvis-support-for-rust/15477)\r\n\r\n[Rendered](https://github.com/ridwanabdillahi/rfcs/blob/natvis/text/0000-debugger-visualizer.md)",
  3979. locked: false,
  3980. closed_at: None,
  3981. created_at: Some(
  3982. "2021-11-03T21:00:27",
  3983. ),
  3984. updated_at: Some(
  3985. "2022-03-22T18:56:49",
  3986. ),
  3987. labels: [
  3988. "T-lang",
  3989. "T-compiler",
  3990. "proposed-final-comment-period",
  3991. "disposition-merge",
  3992. ],
  3993. repository: "rust-lang/rfcs",
  3994. },
  3995. status_comment: StatusComment {
  3996. id: 1064452047,
  3997. fk_issue: 1458601,
  3998. fk_user: 20760818,
  3999. body: "Team member @wesleywiser has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [ ] @Aaron1011\n* [x] @cjgillot\n* [x] @cramertj\n* [x] @davidtwco\n* [x] @eddyb\n* [x] @estebank\n* [x] @joshtriplett\n* [ ] @lcnr\n* [ ] @matthewjasper\n* [x] @michaelwoerister\n* [ ] @nagisa\n* [x] @nikomatsakis\n* [x] @oli-obk\n* [x] @petrochenkov\n* [x] @pnkfelix\n* [x] @scottmcm\n* [x] @wesleywiser\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  4000. created_at: "2022-03-10T20:00:38",
  4001. updated_at: Some(
  4002. "2022-03-22T18:56:49",
  4003. ),
  4004. repository: "rust-lang/rfcs",
  4005. },
  4006. },
  4007. "rust-lang/rust:93203:Tracking Issue for scoped threads": FullFCP {
  4008. fcp: FCP {
  4009. id: 2223,
  4010. fk_issue: 1531088,
  4011. fk_initiator: 783247,
  4012. fk_initiating_comment: 1075284785,
  4013. disposition: Some(
  4014. "merge",
  4015. ),
  4016. fk_bot_tracking_comment: 1075284811,
  4017. fcp_start: None,
  4018. fcp_closed: false,
  4019. },
  4020. reviews: [
  4021. Review {
  4022. reviewer: Reviewer {
  4023. id: 162737,
  4024. login: "joshtriplett",
  4025. },
  4026. approved: true,
  4027. },
  4028. Review {
  4029. reviewer: Reviewer {
  4030. id: 278509,
  4031. login: "Amanieu",
  4032. },
  4033. approved: true,
  4034. },
  4035. Review {
  4036. reviewer: Reviewer {
  4037. id: 456674,
  4038. login: "BurntSushi",
  4039. },
  4040. approved: false,
  4041. },
  4042. Review {
  4043. reviewer: Reviewer {
  4044. id: 783247,
  4045. login: "m-ou-se",
  4046. },
  4047. approved: true,
  4048. },
  4049. Review {
  4050. reviewer: Reviewer {
  4051. id: 1940490,
  4052. login: "dtolnay",
  4053. },
  4054. approved: false,
  4055. },
  4056. Review {
  4057. reviewer: Reviewer {
  4058. id: 1993852,
  4059. login: "yaahc",
  4060. },
  4061. approved: false,
  4062. },
  4063. ],
  4064. issue: FCPIssue {
  4065. id: 1531088,
  4066. number: 93203,
  4067. fk_milestone: None,
  4068. fk_user: 783247,
  4069. fk_assignee: None,
  4070. open: true,
  4071. is_pull_request: false,
  4072. title: "Tracking Issue for scoped threads",
  4073. body: "Feature gate: `#![feature(scoped_threads)]`\r\n\r\nThis is a tracking issue for scoped threads.\r\n\r\nDocumentation: https://doc.rust-lang.org/nightly/std/thread/fn.scope.html\r\n\r\nRFC: https://rust-lang.github.io/rfcs/3151-scoped-threads.html\r\n\r\n### Example usage\r\n\r\n```rust\r\nlet local_var = vec![1, 2, 3];\r\n\r\nthread::scope(|s| {\r\n s.spawn(|| println!(\"borrowed from thread #1: {:?}\", local_var));\r\n s.spawn(|| println!(\"borrowed from thread #2: {:?}\", local_var));\r\n println!(\"borrowed from the main thread: {:?}\", local_var);\r\n});\r\n```\r\n\r\n### Public API\r\n\r\n<!--\r\nFor most library features, it'd be useful to include a summarized version of the public API.\r\n(E.g. just the public function signatures without their doc comments or implementation.)\r\n-->\r\n\r\n```rust\r\n// std::thread\r\n\r\npub struct Scope<'scope, 'env: 'scope> { ... }\r\n\r\npub struct ScopedJoinHandle<'scope, T> { ... }\r\n\r\npub fn scope<'env, F, T>(f: F) -> T\r\nwhere\r\n F: for<'scope> FnOnce(&'scope Scope<'scope, 'env>) -> T;\r\n\r\nimpl Builder {\r\n pub fn spawn_scoped<'scope, 'env, F, T>(\r\n self,\r\n scope: &'scope Scope<'env>,\r\n f: F,\r\n ) -> io::Result<ScopedJoinHandle<'scope, T>>\r\n where\r\n F: FnOnce() -> T + Send + 'scope,\r\n T: Send + 'scope;\r\n}\r\n\r\nimpl<'scope, 'env> Scope<'scope, 'env> {\r\n pub fn spawn<F, T>(&'scope self, f: F) -> ScopedJoinHandle<'scope, T>\r\n where\r\n F: FnOnce() -> T + Send + 'scope,\r\n T: Send + 'scope;\r\n}\r\n\r\nimpl<'scope, T> ScopedJoinHandle<'scope, T> {\r\n pub fn join(self) -> Result<T>;\r\n pub fn thread(&self) -> &Thread;\r\n}\r\n```\r\n\r\n### Steps / History\r\n\r\n- [x] RFC attempt 1: https://github.com/rust-lang/rfcs/pull/2647\r\n- [x] RFC attempt 2: https://github.com/rust-lang/rfcs/pull/3151\r\n- [x] Implementation: https://github.com/rust-lang/rust/pull/92555\r\n- [x] Change signatures a bit to remove the argument to the spawn closures: https://github.com/rust-lang/rust/pull/94559\r\n- [x] Fix soundness issue in implementation: https://github.com/rust-lang/rust/pull/94644\r\n- [x] Document lifetimes: https://github.com/rust-lang/rust/pull/94763\r\n- [ ] Final comment period (FCP)\r\n- [ ] Stabilization PR\r\n\r\n### Unresolved Questions\r\n\r\n- [x] Can we omit the `&Scope` argument to the functions given to `.spawn()`? That is, `scope.spawn(|| ..)` rather than `scope.spawn(|_| ..)`.\r\n - It's already possible by forcing the user to use `move || ..` instead, but that's not great. Maybe the language could be subtly changed to capture references or certain `Copy` types by value rather than by reference(-to-reference).\r\n - See also [this comment](https://github.com/rust-lang/rfcs/pull/3151#issuecomment-883251161) and the collapsed section in [the comment below](https://github.com/rust-lang/rust/issues/93203#issuecomment-1019293467).\r\n - Mostly answered in [this comment](https://github.com/rust-lang/rust/issues/93203#issuecomment-1040720703).\r\n - Working idea in [this comment](https://github.com/rust-lang/rust/issues/93203#issuecomment-1040798286).\r\n - Implementation in https://github.com/rust-lang/rust/pull/94559\r\n- [x] How to document the `'env` and `'scope` lifetimes clearly without scaring people away.\r\n - https://github.com/rust-lang/rust/pull/94763\r\n",
  4074. locked: false,
  4075. closed_at: None,
  4076. created_at: Some(
  4077. "2022-01-22T14:52:22",
  4078. ),
  4079. updated_at: Some(
  4080. "2022-03-22T20:19:33",
  4081. ),
  4082. labels: [
  4083. "A-runtime",
  4084. "T-libs-api",
  4085. "proposed-final-comment-period",
  4086. "C-tracking-issue",
  4087. "disposition-merge",
  4088. ],
  4089. repository: "rust-lang/rust",
  4090. },
  4091. status_comment: StatusComment {
  4092. id: 1075284811,
  4093. fk_issue: 1531088,
  4094. fk_user: 20760818,
  4095. body: "Team member @m-ou-se has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Amanieu\n* [ ] @BurntSushi\n* [ ] @dtolnay\n* [x] @joshtriplett\n* [x] @m-ou-se\n* [ ] @yaahc\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  4096. created_at: "2022-03-22T14:54:10",
  4097. updated_at: Some(
  4098. "2022-03-22T15:08:16",
  4099. ),
  4100. repository: "rust-lang/rust",
  4101. },
  4102. },
  4103. "rust-lang/rust:90291:Loosen the bound on the Debug implementation of Weak.": FullFCP {
  4104. fcp: FCP {
  4105. id: 2082,
  4106. fk_issue: 1450565,
  4107. fk_initiator: 162737,
  4108. fk_initiating_comment: 955599587,
  4109. disposition: Some(
  4110. "merge",
  4111. ),
  4112. fk_bot_tracking_comment: 955599591,
  4113. fcp_start: None,
  4114. fcp_closed: false,
  4115. },
  4116. reviews: [
  4117. Review {
  4118. reviewer: Reviewer {
  4119. id: 162737,
  4120. login: "joshtriplett",
  4121. },
  4122. approved: true,
  4123. },
  4124. Review {
  4125. reviewer: Reviewer {
  4126. id: 278509,
  4127. login: "Amanieu",
  4128. },
  4129. approved: true,
  4130. },
  4131. Review {
  4132. reviewer: Reviewer {
  4133. id: 456674,
  4134. login: "BurntSushi",
  4135. },
  4136. approved: false,
  4137. },
  4138. Review {
  4139. reviewer: Reviewer {
  4140. id: 783247,
  4141. login: "m-ou-se",
  4142. },
  4143. approved: true,
  4144. },
  4145. Review {
  4146. reviewer: Reviewer {
  4147. id: 1940490,
  4148. login: "dtolnay",
  4149. },
  4150. approved: true,
  4151. },
  4152. Review {
  4153. reviewer: Reviewer {
  4154. id: 1993852,
  4155. login: "yaahc",
  4156. },
  4157. approved: true,
  4158. },
  4159. ],
  4160. issue: FCPIssue {
  4161. id: 1450565,
  4162. number: 90291,
  4163. fk_milestone: None,
  4164. fk_user: 2838446,
  4165. fk_assignee: Some(
  4166. 103023,
  4167. ),
  4168. open: true,
  4169. is_pull_request: true,
  4170. title: "Loosen the bound on the Debug implementation of Weak.",
  4171. body: "Both `rc::Weak<T>` and `sync::Weak<T>` currently require `T: Debug` in their own `Debug` implementations, but they don't currently use it; they only ever print a fixed string.\r\n\r\nA general implementation of Debug for Weak that actually attempts to upgrade and rely on the contents is unlikely in the future because it may have unbounded recursion in the presence of reference cycles, which Weak is commonly used in. (This was the justification for why the current implementation [was implemented the way it is](https://github.com/rust-lang/rust/pull/19388/commits/f0976e2cf3f6b0027f118b791e0888b29fbb41a7)).\r\n\r\nWhen I brought it up [on the forum](https://internals.rust-lang.org/t/could-the-bound-on-weak-debug-be-relaxed/15504), it was suggested that, even if an implementation is specialized in the future that relies on the data stored within the Weak, it would likely rely on specialization anyway, and could therefore easily specialize on the Debug bound as well.",
  4172. locked: false,
  4173. closed_at: None,
  4174. created_at: Some(
  4175. "2021-10-26T01:51:05",
  4176. ),
  4177. updated_at: Some(
  4178. "2022-03-16T14:34:33",
  4179. ),
  4180. labels: [
  4181. "T-libs-api",
  4182. "S-waiting-on-review",
  4183. "proposed-final-comment-period",
  4184. "disposition-merge",
  4185. "needs-fcp",
  4186. ],
  4187. repository: "rust-lang/rust",
  4188. },
  4189. status_comment: StatusComment {
  4190. id: 955599591,
  4191. fk_issue: 1450565,
  4192. fk_user: 20760818,
  4193. body: "Team member @joshtriplett has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Amanieu\n* [ ] @BurntSushi\n* [x] @dtolnay\n* [x] @joshtriplett\n* [x] @m-ou-se\n* [x] @yaahc\n\nConcerns:\n\n* better-use-case (https://github.com/rust-lang/rust/pull/90291#issuecomment-956196380)\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  4194. created_at: "2021-10-30T22:04:41",
  4195. updated_at: Some(
  4196. "2022-03-09T17:38:17",
  4197. ),
  4198. repository: "rust-lang/rust",
  4199. },
  4200. },
  4201. "rust-lang/rust:91789:Tracking Issue for try_reserve method on more containers": FullFCP {
  4202. fcp: FCP {
  4203. id: 2160,
  4204. fk_issue: 1492330,
  4205. fk_initiator: 1993852,
  4206. fk_initiating_comment: 1026130074,
  4207. disposition: Some(
  4208. "merge",
  4209. ),
  4210. fk_bot_tracking_comment: 1026130086,
  4211. fcp_start: None,
  4212. fcp_closed: false,
  4213. },
  4214. reviews: [
  4215. Review {
  4216. reviewer: Reviewer {
  4217. id: 162737,
  4218. login: "joshtriplett",
  4219. },
  4220. approved: false,
  4221. },
  4222. Review {
  4223. reviewer: Reviewer {
  4224. id: 278509,
  4225. login: "Amanieu",
  4226. },
  4227. approved: true,
  4228. },
  4229. Review {
  4230. reviewer: Reviewer {
  4231. id: 456674,
  4232. login: "BurntSushi",
  4233. },
  4234. approved: false,
  4235. },
  4236. Review {
  4237. reviewer: Reviewer {
  4238. id: 783247,
  4239. login: "m-ou-se",
  4240. },
  4241. approved: false,
  4242. },
  4243. Review {
  4244. reviewer: Reviewer {
  4245. id: 1940490,
  4246. login: "dtolnay",
  4247. },
  4248. approved: false,
  4249. },
  4250. Review {
  4251. reviewer: Reviewer {
  4252. id: 1993852,
  4253. login: "yaahc",
  4254. },
  4255. approved: true,
  4256. },
  4257. ],
  4258. issue: FCPIssue {
  4259. id: 1492330,
  4260. number: 91789,
  4261. fk_milestone: None,
  4262. fk_user: 9161438,
  4263. fk_assignee: None,
  4264. open: true,
  4265. is_pull_request: false,
  4266. title: "Tracking Issue for try_reserve method on more containers",
  4267. body: "<!--\r\nNOTE: For library features, please use the \"Library Tracking Issue\" template instead.\r\n\r\nThank you for creating a tracking issue! 📜 Tracking issues are for tracking a\r\nfeature from implementation to stabilisation. Make sure to include the relevant\r\nRFC for the feature if it has one. Otherwise provide a short summary of the\r\nfeature and link any relevant PRs or issues, and remove any sections that are\r\nnot relevant to the feature.\r\n\r\nRemember to add team labels to the tracking issue.\r\nFor a language team feature, this would e.g., be `T-lang`.\r\nSuch a feature should also be labeled with e.g., `F-my_feature`.\r\nThis label is used to associate issues (e.g., bugs and design questions) to the feature.\r\n-->\r\n\r\nThis is another tracking issue for the try_reserve part of the RFC \"fallible collection allocation\" (rust-lang/rfcs#2116).\r\nThe feature gate for the issue is `#![feature(try_reserve_2)]`.\r\n\r\nThe feature is a follow-up to #48043. Since `try_reserve` was stabilized in 1.57.0, we may need a new feature gate for further `try_reserve` implementation on more containers.\r\n\r\n### About tracking issues\r\n\r\nTracking issues are used to record the overall progress of implementation.\r\nThey are also used as hubs connecting to other relevant issues, e.g., bugs or open design questions.\r\nA tracking issue is however *not* meant for large scale discussion, questions, or bug reports about a feature.\r\nInstead, open a dedicated issue for the specific matter and add the relevant feature gate label.\r\n\r\n### Steps\r\n<!--\r\nInclude each step required to complete the feature. Typically this is a PR\r\nimplementing a feature, followed by a PR that stabilises the feature. However\r\nfor larger features an implementation could be broken up into multiple PRs.\r\n-->\r\n\r\n- [x] Implement `try_reserve` and `try_reserve_exact` on `BinaryHeap` #91529 \r\n- [x] Implement `try_reserve` and `try_reserve_exact` on `PathBuf` #92513\r\n- [x] Implement `try_reserve` and `try_reserve_exact` on `OsString` #92338 \r\n- [ ] Adjust documentation ([see instructions on rustc-dev-guide][doc-guide])\r\n- [ ] Stabilization PR ([see instructions on rustc-dev-guide][stabilization-guide])\r\n\r\n[stabilization-guide]: https://rustc-dev-guide.rust-lang.org/stabilization_guide.html#stabilization-pr\r\n[doc-guide]: https://rustc-dev-guide.rust-lang.org/stabilization_guide.html#documentation-prs\r\n\r\nIf any containers were missing, please comment in the issue, and I will add it to the list.\r\n\r\n### Unresolved Questions\r\n<!--\r\nInclude any open questions that need to be answered before the feature can be\r\nstabilised.\r\n-->\r\n\r\n\r\n### Implementation history\r\n\r\n<!--\r\nInclude a list of all the PRs that were involved in implementing the feature.\r\n-->\r\n\r\n#91529 \r\n#92338 \r\n#92513\r\n",
  4268. locked: false,
  4269. closed_at: None,
  4270. created_at: Some(
  4271. "2021-12-11T14:40:29",
  4272. ),
  4273. updated_at: Some(
  4274. "2022-03-13T17:47:25",
  4275. ),
  4276. labels: [
  4277. "T-libs-api",
  4278. "proposed-final-comment-period",
  4279. "C-tracking-issue",
  4280. "disposition-merge",
  4281. ],
  4282. repository: "rust-lang/rust",
  4283. },
  4284. status_comment: StatusComment {
  4285. id: 1026130086,
  4286. fk_issue: 1492330,
  4287. fk_user: 20760818,
  4288. body: "Team member @yaahc has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Amanieu\n* [ ] @BurntSushi\n* [ ] @dtolnay\n* [ ] @joshtriplett\n* [ ] @m-ou-se\n* [x] @yaahc\n\nConcerns:\n\n* do we need better docs about what the argument value means (not bytes) (https://github.com/rust-lang/rust/issues/91789#issuecomment-1027257918)\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  4289. created_at: "2022-01-31T19:28:08",
  4290. updated_at: Some(
  4291. "2022-02-16T21:01:10",
  4292. ),
  4293. repository: "rust-lang/rust",
  4294. },
  4295. },
  4296. "rust-lang/rust:91759:rustdoc: \"Namespace\" user-written Markdown headings": FullFCP {
  4297. fcp: FCP {
  4298. id: 2119,
  4299. fk_issue: 1491608,
  4300. fk_initiator: 37223377,
  4301. fk_initiating_comment: 996996449,
  4302. disposition: Some(
  4303. "merge",
  4304. ),
  4305. fk_bot_tracking_comment: 996996461,
  4306. fcp_start: None,
  4307. fcp_closed: false,
  4308. },
  4309. reviews: [
  4310. Review {
  4311. reviewer: Reviewer {
  4312. id: 81079,
  4313. login: "Nemo157",
  4314. },
  4315. approved: true,
  4316. },
  4317. Review {
  4318. reviewer: Reviewer {
  4319. id: 220205,
  4320. login: "jsha",
  4321. },
  4322. approved: true,
  4323. },
  4324. Review {
  4325. reviewer: Reviewer {
  4326. id: 1617736,
  4327. login: "Manishearth",
  4328. },
  4329. approved: true,
  4330. },
  4331. Review {
  4332. reviewer: Reviewer {
  4333. id: 3050060,
  4334. login: "GuillaumeGomez",
  4335. },
  4336. approved: true,
  4337. },
  4338. Review {
  4339. reviewer: Reviewer {
  4340. id: 7189418,
  4341. login: "ollie27",
  4342. },
  4343. approved: false,
  4344. },
  4345. Review {
  4346. reviewer: Reviewer {
  4347. id: 13342132,
  4348. login: "CraftSpider",
  4349. },
  4350. approved: true,
  4351. },
  4352. Review {
  4353. reviewer: Reviewer {
  4354. id: 23638587,
  4355. login: "jyn514",
  4356. },
  4357. approved: false,
  4358. },
  4359. Review {
  4360. reviewer: Reviewer {
  4361. id: 37223377,
  4362. login: "camelid",
  4363. },
  4364. approved: true,
  4365. },
  4366. ],
  4367. issue: FCPIssue {
  4368. id: 1491608,
  4369. number: 91759,
  4370. fk_milestone: None,
  4371. fk_user: 37223377,
  4372. fk_assignee: Some(
  4373. 3050060,
  4374. ),
  4375. open: true,
  4376. is_pull_request: false,
  4377. title: "rustdoc: \"Namespace\" user-written Markdown headings",
  4378. body: "Tracking issue for @jsha's idea mentioned [here](https://rust-lang.zulipchat.com/#narrow/stream/266220-rustdoc/topic/DOM.20id.20tidy.20check/near/264504935). What follows is @jsha's summary of the idea:\r\n\r\nWhen markdown like `# Examples` is processed, it usually turns into something like `<a href=\"#examples\" id=\"examples\">`. This is useful so you can click on the heading and get a link that will take someone else to that precise part of the docs.\r\n\r\nSince the markdown in rustdoc is user-generated, those anchor ids may conflict with Rustdoc's own anchor ids. They may also conflict with other markdown sections within the same doc page. For instance, see:\r\n\r\nhttps://doc.rust-lang.org/nightly/std/string/struct.String.html#examples\r\nhttps://doc.rust-lang.org/nightly/std/string/struct.String.html#examples-1\r\nhttps://doc.rust-lang.org/nightly/std/string/struct.String.html#examples-2\r\n\r\nRight now we disambiguate these ids by added a number at the end. However, it would be better to disambiguate them by namespacing. Specifically, each time we render markdown we should provide a \"prefix\", and all IDs in the generated HTML should start with that prefix. In general a convenient and sensible choice for this prefix would be the id of the immediately preceding heading. So the examples linked above might become `#top.examples`, `#method.new.examples`, and `#method.from_utf8.examples`.\r\n\r\nThis has three advantages:\r\n - It systematically removes most of the cases of id conflict.\r\n - It makes anchor links more meaningful when someone reads the URL.\r\n - It makes anchor links stable across revisions.\r\n\r\nThis is a 99% solution, not a 100% one. Users can author HTML directly in their markdown, for instance `<div id=\"foo\">`. But we are okay with letting the conflicts happen in those rare cases.",
  4379. locked: false,
  4380. closed_at: None,
  4381. created_at: Some(
  4382. "2021-12-10T21:28:12",
  4383. ),
  4384. updated_at: Some(
  4385. "2022-01-23T03:43:18",
  4386. ),
  4387. labels: [
  4388. "T-rustdoc",
  4389. "C-enhancement",
  4390. "proposed-final-comment-period",
  4391. "disposition-merge",
  4392. "A-rustdoc-ui",
  4393. ],
  4394. repository: "rust-lang/rust",
  4395. },
  4396. status_comment: StatusComment {
  4397. id: 996996461,
  4398. fk_issue: 1491608,
  4399. fk_user: 20760818,
  4400. body: "Team member @camelid has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @CraftSpider\n* [x] @GuillaumeGomez\n* [x] @Manishearth\n* [x] @Nemo157\n* [x] @camelid\n* [x] @jsha\n* [ ] @jyn514\n* [ ] @ollie27\n\nConcerns:\n\n* ~~anchor formatting~~ resolved by https://github.com/rust-lang/rust/issues/91759#issuecomment-1012496534\n* ~~breakage~~ resolved by https://github.com/rust-lang/rust/issues/91759#issuecomment-1012548149\n* ~~impls~~ resolved by https://github.com/rust-lang/rust/issues/91759#issuecomment-997085268\n* simplify (https://github.com/rust-lang/rust/issues/91759#issuecomment-1019004268)\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  4401. created_at: "2021-12-17T19:56:24",
  4402. updated_at: Some(
  4403. "2022-01-22T01:19:10",
  4404. ),
  4405. repository: "rust-lang/rust",
  4406. },
  4407. },
  4408. "rust-lang/rust:88581:Tracking Issue for `int_roundings`": FullFCP {
  4409. fcp: FCP {
  4410. id: 2188,
  4411. fk_issue: 1401981,
  4412. fk_initiator: 162737,
  4413. fk_initiating_comment: 1054642118,
  4414. disposition: Some(
  4415. "merge",
  4416. ),
  4417. fk_bot_tracking_comment: 1054642132,
  4418. fcp_start: None,
  4419. fcp_closed: false,
  4420. },
  4421. reviews: [
  4422. Review {
  4423. reviewer: Reviewer {
  4424. id: 162737,
  4425. login: "joshtriplett",
  4426. },
  4427. approved: true,
  4428. },
  4429. Review {
  4430. reviewer: Reviewer {
  4431. id: 278509,
  4432. login: "Amanieu",
  4433. },
  4434. approved: true,
  4435. },
  4436. Review {
  4437. reviewer: Reviewer {
  4438. id: 456674,
  4439. login: "BurntSushi",
  4440. },
  4441. approved: false,
  4442. },
  4443. Review {
  4444. reviewer: Reviewer {
  4445. id: 783247,
  4446. login: "m-ou-se",
  4447. },
  4448. approved: false,
  4449. },
  4450. Review {
  4451. reviewer: Reviewer {
  4452. id: 1940490,
  4453. login: "dtolnay",
  4454. },
  4455. approved: true,
  4456. },
  4457. Review {
  4458. reviewer: Reviewer {
  4459. id: 1993852,
  4460. login: "yaahc",
  4461. },
  4462. approved: true,
  4463. },
  4464. ],
  4465. issue: FCPIssue {
  4466. id: 1401981,
  4467. number: 88581,
  4468. fk_milestone: None,
  4469. fk_user: 3161395,
  4470. fk_assignee: None,
  4471. open: true,
  4472. is_pull_request: false,
  4473. title: "Tracking Issue for `int_roundings`",
  4474. body: "Feature gate: `#![feature(int_roundings)]`\r\n\r\nThis is a tracking issue for the `div_floor`, `div_ceil`, `next_multiple_of`, and `checked_multiple_of` methods on all integer types.\r\n\r\n### Public API\r\n\r\n```rust\r\nimpl {integer} {\r\n pub const fn div_floor(self, rhs: Self) -> Self;\r\n pub const fn div_ceil(self, rhs: Self) -> Self;\r\n pub const fn next_multiple_of(self, rhs: Self) -> Self;\r\n pub const fn checked_next_multiple_of(self, rhs: Self) -> Option<Self>;\r\n}\r\n```\r\n\r\n### Steps / History\r\n\r\n- [x] Implementation: #88582\r\n- [ ] Final comment period (FCP)\r\n- [ ] Stabilization PR\r\n\r\n### Unresolved Questions\r\n\r\n- None yet.\r\n",
  4475. locked: false,
  4476. closed_at: None,
  4477. created_at: Some(
  4478. "2021-09-02T05:24:48",
  4479. ),
  4480. updated_at: Some(
  4481. "2022-03-18T06:04:54",
  4482. ),
  4483. labels: [
  4484. "T-libs-api",
  4485. "proposed-final-comment-period",
  4486. "C-tracking-issue",
  4487. "disposition-merge",
  4488. ],
  4489. repository: "rust-lang/rust",
  4490. },
  4491. status_comment: StatusComment {
  4492. id: 1054642132,
  4493. fk_issue: 1401981,
  4494. fk_user: 20760818,
  4495. body: "Team member @joshtriplett has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Amanieu\n* [ ] @BurntSushi\n* [x] @dtolnay\n* [x] @joshtriplett\n* [ ] @m-ou-se\n* [x] @yaahc\n\nConcerns:\n\n* Should these panic or wrap around on overflow in release mode? (https://github.com/rust-lang/rust/issues/88581#issuecomment-1063388353)\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  4496. created_at: "2022-02-28T20:38:43",
  4497. updated_at: Some(
  4498. "2022-03-16T19:00:03",
  4499. ),
  4500. repository: "rust-lang/rust",
  4501. },
  4502. },
  4503. "rust-lang/cargo:10383:Unstable --keep-going flag": FullFCP {
  4504. fcp: FCP {
  4505. id: 2180,
  4506. fk_issue: 1557773,
  4507. fk_initiator: 64996,
  4508. fk_initiating_comment: 1041836034,
  4509. disposition: Some(
  4510. "merge",
  4511. ),
  4512. fk_bot_tracking_comment: 1041836052,
  4513. fcp_start: None,
  4514. fcp_closed: false,
  4515. },
  4516. reviews: [
  4517. Review {
  4518. reviewer: Reviewer {
  4519. id: 43198,
  4520. login: "ehuss",
  4521. },
  4522. approved: false,
  4523. },
  4524. Review {
  4525. reviewer: Reviewer {
  4526. id: 64996,
  4527. login: "alexcrichton",
  4528. },
  4529. approved: true,
  4530. },
  4531. Review {
  4532. reviewer: Reviewer {
  4533. id: 162737,
  4534. login: "joshtriplett",
  4535. },
  4536. approved: false,
  4537. },
  4538. Review {
  4539. reviewer: Reviewer {
  4540. id: 3709504,
  4541. login: "Eh2406",
  4542. },
  4543. approved: false,
  4544. },
  4545. ],
  4546. issue: FCPIssue {
  4547. id: 1557773,
  4548. number: 10383,
  4549. fk_milestone: None,
  4550. fk_user: 1940490,
  4551. fk_assignee: Some(
  4552. 43198,
  4553. ),
  4554. open: true,
  4555. is_pull_request: true,
  4556. title: "Unstable --keep-going flag",
  4557. body: "## Summary\r\n\r\nThis PR adds an unstable `--keep-going` flag documented as follows:\r\n\r\n> `cargo build --keep-going` (and similarly for `check`, `test` etc) will build as many crates in the dependency graph as possible, rather than aborting the build at the first one that fails to build.\r\n>\r\n> For example if the current package depends on dependencies `fails` and `works`, one of which fails to build, `cargo check -j1` may or may not build the one that succeeds (depending on which one of the two builds Cargo picked to run first), whereas `cargo check -j1 --keep-going` would definitely run both builds, even if the one run first fails.\r\n>\r\n> The `-Z unstable-options` command-line option must be used in order to use `--keep-going` while it is not yet stable:\r\n>\r\n> ```console\r\n> cargo check --keep-going -Z unstable-options\r\n> ```\r\n\r\n## Prior art\r\n\r\n[Buck](https://buck.build/) and [Bazel](https://bazel.build/) and Make all have this flag (though Bazel calls it `--keep_going` :vomiting_face:) with exactly this behavior.\r\n\r\n## Motivation\r\n\r\nI need this in order to make https://github.com/dtolnay/trybuild not super slow.\r\n\r\nTrybuild wants to run Cargo on a bunch of test cases, each of which is a bin crate. The bad options currently available are:\r\n\r\n- Give each test case its own target dir and run build on them in parallel. This is bad because all the test cases have the same dependencies in common (whatever `dev-dependencies` are declared by the project). If there are 100 test cases, all the dependencies would end up getting built 100 times, which is 100x slower than necessary despite the parallelism.\r\n\r\n- Reuse a single target dir for all the test cases. Two Cargos can't operate in parallel on the same target directory, so this forces the test cases to be built serially. This is much slower than necessary on a many-core system, and compounds all of the overheads in Cargo because the project structure must be reloaded by each invocation.\r\n\r\nThe good option I'd like to switch to is:\r\n\r\n- Run `cargo build --bins --keep-going --message-format=json` to build *all* the test cases in parallel. Use the filepaths in the JSON messages to ascribe diagnostics to which bin they're from.",
  4558. locked: false,
  4559. closed_at: None,
  4560. created_at: Some(
  4561. "2022-02-12T08:07:44",
  4562. ),
  4563. updated_at: Some(
  4564. "2022-03-22T01:39:57",
  4565. ),
  4566. labels: [
  4567. "T-cargo",
  4568. "proposed-final-comment-period",
  4569. "disposition-merge",
  4570. "S-waiting-on-review",
  4571. ],
  4572. repository: "rust-lang/cargo",
  4573. },
  4574. status_comment: StatusComment {
  4575. id: 1041836052,
  4576. fk_issue: 1557773,
  4577. fk_user: 20760818,
  4578. body: "Team member @alexcrichton has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [ ] @Eh2406\n* [x] @alexcrichton\n* [ ] @ehuss\n* [ ] @joshtriplett\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  4579. created_at: "2022-02-16T16:16:57",
  4580. updated_at: Some(
  4581. "2022-02-16T16:16:59",
  4582. ),
  4583. repository: "rust-lang/cargo",
  4584. },
  4585. },
  4586. "rust-lang/rust:94530:Implement Copy, Clone, PartialEq and Eq for core::fmt::Alignment": FullFCP {
  4587. fcp: FCP {
  4588. id: 2195,
  4589. fk_issue: 1575673,
  4590. fk_initiator: 1993852,
  4591. fk_initiating_comment: 1059571313,
  4592. disposition: Some(
  4593. "merge",
  4594. ),
  4595. fk_bot_tracking_comment: 1059571324,
  4596. fcp_start: None,
  4597. fcp_closed: false,
  4598. },
  4599. reviews: [
  4600. Review {
  4601. reviewer: Reviewer {
  4602. id: 162737,
  4603. login: "joshtriplett",
  4604. },
  4605. approved: false,
  4606. },
  4607. Review {
  4608. reviewer: Reviewer {
  4609. id: 278509,
  4610. login: "Amanieu",
  4611. },
  4612. approved: true,
  4613. },
  4614. Review {
  4615. reviewer: Reviewer {
  4616. id: 456674,
  4617. login: "BurntSushi",
  4618. },
  4619. approved: false,
  4620. },
  4621. Review {
  4622. reviewer: Reviewer {
  4623. id: 783247,
  4624. login: "m-ou-se",
  4625. },
  4626. approved: false,
  4627. },
  4628. Review {
  4629. reviewer: Reviewer {
  4630. id: 1940490,
  4631. login: "dtolnay",
  4632. },
  4633. approved: true,
  4634. },
  4635. Review {
  4636. reviewer: Reviewer {
  4637. id: 1993852,
  4638. login: "yaahc",
  4639. },
  4640. approved: true,
  4641. },
  4642. ],
  4643. issue: FCPIssue {
  4644. id: 1575673,
  4645. number: 94530,
  4646. fk_milestone: None,
  4647. fk_user: 51362316,
  4648. fk_assignee: Some(
  4649. 162737,
  4650. ),
  4651. open: true,
  4652. is_pull_request: true,
  4653. title: "Implement Copy, Clone, PartialEq and Eq for core::fmt::Alignment",
  4654. body: "Alignment is a fieldless exhaustive enum, so it is already possible to\r\nclone and compare it by matching, but it is inconvenient to do so. For\r\nexample, if one would like to create a struct describing a formatter\r\nconfiguration and provide a clone implementation:\r\n\r\n```rust\r\npub struct Format {\r\n fill: char,\r\n width: Option<usize>,\r\n align: fmt::Alignment,\r\n}\r\n\r\nimpl Clone for Format {\r\n fn clone(&self) -> Self {\r\n Format {\r\n align: match self.align {\r\n fmt::Alignment::Left => fmt::Alignment::Left,\r\n fmt::Alignment::Right => fmt::Alignment::Right,\r\n fmt::Alignment::Center => fmt::Alignment::Center,\r\n },\r\n .. *self\r\n }\r\n }\r\n}\r\n```\r\n\r\nDerive Copy, Clone, PartialEq, and Eq for Alignment for convenience.\r\n\r\n",
  4655. locked: false,
  4656. closed_at: None,
  4657. created_at: Some(
  4658. "2022-03-02T17:35:18",
  4659. ),
  4660. updated_at: Some(
  4661. "2022-03-16T21:07:25",
  4662. ),
  4663. labels: [
  4664. "T-libs-api",
  4665. "S-waiting-on-review",
  4666. "proposed-final-comment-period",
  4667. "disposition-merge",
  4668. "needs-fcp",
  4669. ],
  4670. repository: "rust-lang/rust",
  4671. },
  4672. status_comment: StatusComment {
  4673. id: 1059571324,
  4674. fk_issue: 1575673,
  4675. fk_user: 20760818,
  4676. body: "Team member @yaahc has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Amanieu\n* [ ] @BurntSushi\n* [x] @dtolnay\n* [ ] @joshtriplett\n* [ ] @m-ou-se\n* [x] @yaahc\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  4677. created_at: "2022-03-04T22:17:57",
  4678. updated_at: Some(
  4679. "2022-03-16T21:07:25",
  4680. ),
  4681. repository: "rust-lang/rust",
  4682. },
  4683. },
  4684. "rust-lang/rust:94927:Stabilize `let_chains` in Rust 1.62.0": FullFCP {
  4685. fcp: FCP {
  4686. id: 2210,
  4687. fk_issue: 1586861,
  4688. fk_initiator: 162737,
  4689. fk_initiating_comment: 1067658430,
  4690. disposition: Some(
  4691. "merge",
  4692. ),
  4693. fk_bot_tracking_comment: 1067658436,
  4694. fcp_start: None,
  4695. fcp_closed: false,
  4696. },
  4697. reviews: [
  4698. Review {
  4699. reviewer: Reviewer {
  4700. id: 155238,
  4701. login: "nikomatsakis",
  4702. },
  4703. approved: true,
  4704. },
  4705. Review {
  4706. reviewer: Reviewer {
  4707. id: 162737,
  4708. login: "joshtriplett",
  4709. },
  4710. approved: true,
  4711. },
  4712. Review {
  4713. reviewer: Reviewer {
  4714. id: 173127,
  4715. login: "pnkfelix",
  4716. },
  4717. approved: false,
  4718. },
  4719. Review {
  4720. reviewer: Reviewer {
  4721. id: 5963049,
  4722. login: "cramertj",
  4723. },
  4724. approved: true,
  4725. },
  4726. Review {
  4727. reviewer: Reviewer {
  4728. id: 18526288,
  4729. login: "scottmcm",
  4730. },
  4731. approved: false,
  4732. },
  4733. ],
  4734. issue: FCPIssue {
  4735. id: 1586861,
  4736. number: 94927,
  4737. fk_milestone: None,
  4738. fk_user: 17877264,
  4739. fk_assignee: Some(
  4740. 1606434,
  4741. ),
  4742. open: true,
  4743. is_pull_request: true,
  4744. title: "Stabilize `let_chains` in Rust 1.62.0",
  4745. body: "# Stabilization proposal\r\n\r\nThis PR proposes the stabilization of `#![feature(let_chains)]` in a future-compatibility way that will allow the **possible** addition of the `EXPR is PAT` syntax.\r\n\r\nTracking issue: #53667\r\nVersion: 1.62 (2022-05-17 => beta, 2022-06-30 => stable).\r\n\r\n## What is stabilized\r\n\r\nThe ability to chain let expressions along side local variable declarations or ordinary conditional expressions. For example:\r\n\r\n```rust\r\npub enum Color {\r\n Blue,\r\n Red,\r\n Violet,\r\n}\r\n\r\npub enum Flower {\r\n Rose,\r\n Tulip,\r\n Violet,\r\n}\r\n\r\npub fn roses_are_red_violets_are_blue_printer(\r\n (first_flower, first_flower_color): (Flower, Color),\r\n (second_flower, second_flower_color): (Flower, Color),\r\n pick_up_lines: &[&str],\r\n) {\r\n if let Flower::Rose = first_flower\r\n && let Color::Red = first_flower_color\r\n && let Flower::Violet = second_flower\r\n && let Color::Blue = second_flower_color\r\n && let &[first_pick_up_line, ..] = pick_up_lines\r\n {\r\n println!(\"Roses are red, violets are blue, {}\", first_pick_up_line);\r\n }\r\n}\r\n\r\nfn main() {\r\n roses_are_red_violets_are_blue_printer(\r\n (Flower::Rose, Color::Red),\r\n (Flower::Violet, Color::Blue),\r\n &[\"sugar is sweet and so are you\"],\r\n );\r\n}\r\n```\r\n\r\n## Motivation\r\n\r\nThe main motivation for this feature is improving readability, ergonomics and reducing paper cuts.\r\n\r\nFor more examples, see the [RFC](https://github.com/rust-lang/rfcs/blob/master/text/2497-if-let-chains.md).\r\n\r\n## What isn't stabilized\r\n\r\n* Let chains in match guards (`if_let_guard`)\r\n\r\n* Resolution of divergent non-terminal matchers\r\n\r\n* The `EXPR is PAT` syntax\r\n\r\n## History\r\n\r\n* On 2017-12-24, [RFC: if- and while-let-chains](https://github.com/rust-lang/rfcs/pull/2260)\r\n* On 2018-07-12, [eRFC: if- and while-let-chains, take 2](https://github.com/rust-lang/rfcs/pull/2497)\r\n* On 2018-08-24, [Tracking issue for eRFC 2497, \"if- and while-let-chains, take 2](https://github.com/rust-lang/rust/issues/53667)\r\n* On 2019-03-19, [Run branch cleanup after copy prop](https://github.com/rust-lang/rust/pull/59290)\r\n* On 2019-03-26, [Generalize diagnostic for x = y where bool is the expected type](https://github.com/rust-lang/rust/pull/59439)\r\n* On 2019-04-24, [Introduce hir::ExprKind::Use and employ in for loop desugaring](https://github.com/rust-lang/rust/pull/60225)\r\n* On 2019-03-19, [[let_chains, 1/6] Remove hir::ExprKind::If](https://github.com/rust-lang/rust/pull/59288)\r\n* On 2019-05-15, [[let_chains, 2/6] Introduce Let(..) in AST, remove IfLet + WhileLet and parse let chains](https://github.com/rust-lang/rust/pull/60861)\r\n* On 2019-06-20, [[let_chains, 3/6] And then there was only Loop](https://github.com/rust-lang/rust/pull/61988)\r\n* On 2020-11-22, [Reintroduce hir::ExprKind::If](https://github.com/rust-lang/rust/pull/79328)\r\n* On 2020-12-24, [Introduce hir::ExprKind::Let - Take 2](https://github.com/rust-lang/rust/pull/80357)\r\n* On 2021-02-19, [Lower condition of if expression before it's \"then\" block](https://github.com/rust-lang/rust/pull/82308)\r\n* On 2021-09-01, [Fix drop handling for `if let` expressions](https://github.com/rust-lang/rust/pull/88572)\r\n* On 2021-09-04, [Formally implement let chains](https://github.com/rust-lang/rust/pull/88642)\r\n* On 2022-01-19, [Add tests to ensure that let_chains works with if_let_guard](https://github.com/rust-lang/rust/pull/93086)\r\n* On 2022-01-18, [Introduce `enhanced_binary_op` feature](https://github.com/rust-lang/rust/pull/93049)\r\n* On 2022-01-22, [Fix `let_chains` and `if_let_guard` feature flags](https://github.com/rust-lang/rust/pull/93213)\r\n* On 2022-02-25, [Initiate the inner usage of `let_chains`](https://github.com/rust-lang/rust/pull/94376)\r\n* On 2022-01-28, [[WIP] Introduce ast::StmtKind::LetElse to allow the usage of `let_else` with `let_chains`](https://github.com/rust-lang/rust/pull/93437)\r\n* On 2022-02-26, [1 - Make more use of `let_chains`](https://github.com/rust-lang/rust/pull/94396)\r\n* On 2022-02-26, [2 - Make more use of `let_chains`](https://github.com/rust-lang/rust/pull/94400)\r\n* On 2022-02-27, [3 - Make more use of `let_chains`](https://github.com/rust-lang/rust/pull/94420)\r\n* On 2022-02-28, [4 - Make more use of `let_chains`](https://github.com/rust-lang/rust/pull/94445)\r\n* On 2022-02-28, [5 - Make more use of `let_chains`](https://github.com/rust-lang/rust/pull/94448)\r\n* On 2022-02-28, [6 - Make more use of `let_chains`](https://github.com/rust-lang/rust/pull/94465)\r\n* On 2022-03-01, [7 - Make more use of `let_chains`](https://github.com/rust-lang/rust/pull/94476)\r\n* On 2022-03-01, [8 - Make more use of `let_chains`](https://github.com/rust-lang/rust/pull/94484)\r\n* On 2022-03-01, [9 - Make more use of `let_chains`](https://github.com/rust-lang/rust/pull/94498)\r\n* On 2022-03-08, [Warn users about `||` in let chain expressions](https://github.com/rust-lang/rust/pull/94754)\r\n\r\nFrom the first RFC (2017-12-24) to the theoretical future stabilization day (2022-06-30), it can be said that this feature took 4 years, 6 months and 7 days of research, development, discussions, agreements/consensus and headaches to be settled.\r\n\r\n## Divergent non-terminal matchers\r\n\r\nMore specifically, https://github.com/rust-lang/rust/issues/86730.\r\n\r\n```rust\r\nmacro_rules! mac {\r\n ($e:expr) => {\r\n if $e {\r\n true\r\n } else {\r\n false\r\n }\r\n };\r\n}\r\n\r\nfn main() {\r\n // OK!\r\n assert_eq!(mac!(true && let 1 = 1), true);\r\n\r\n // ERROR! Anything starting with `let` is not considered an expression\r\n assert_eq!(mac!(let 1 = 1 && true), true);\r\n}\r\n```\r\n\r\nTo the best of my knowledge, such error or divergence is orthogonal, does not prevent stabilization and can be tackled independently in the near future or effectively in the next Rust 2024 edition. If not, then https://github.com/c410-f3r/rust/tree/let-macro-blah contains a set of changes that will consider `let` an expression.\r\n\r\nIt is possible that none of the solutions above satisfies all applicable constraints but I personally don't know of any other plausible answers.\r\n\r\n## Alternative syntax\r\n\r\nTaking into account the usefulness of this feature and the overwhelming desire to use both now and in the past, `let PAT = EXPR` will be utilized for stabilization but it doesn't or shall create any obstacle for a **possible** future addition of `EXPR is PAT`.\r\n\r\nThe introductory snippet would then be written as the following.\r\n\r\n```rust\r\nif first_flower is Flower::Rose \r\n && first_flower_color is Color::Red\r\n && second_flower is Flower::Violet\r\n && second_flower_color is Color::Blue\r\n && pick_up_lines is &[first_pick_up_line, ..]\r\n{\r\n println!(\"Roses are red, violets are blue, {}\", first_pick_up_line);\r\n}\r\n```\r\n\r\nJust to reinforce, this PR only unblocks a **possible** future road for `EXPR is PAT` and does emphasize what is better or what is worse.\r\n\r\n## Tests\r\n\r\n* [Verifies the drop order of let chains and ensures it won't change in the future in an unpredictable way](https://github.com/rust-lang/rust/blob/master/src/test/ui/mir/mir_let_chains_drop_order.rs)\r\n\r\n* [AST lowering does not wrap let chains in an `DropTemps` expression](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2497-if-let-chains/ast-lowering-does-not-wrap-let-chains.rs)\r\n\r\n* [Checks pretty printing output](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2497-if-let-chains/ast-pretty-check.rs)\r\n\r\n* [Verifies uninitialized variables due to MIR modifications](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2497-if-let-chains/chains-without-let.rs)\r\n\r\n* [A collection of statements where `let` expressions are forbidden](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2497-if-let-chains/disallowed-positions.rs)\r\n\r\n* [All or at least most of the places where let chains are allowed](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2497-if-let-chains/feature-gate.rs)\r\n\r\n* [Ensures that irrefutable lets are allowed in let chains](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2497-if-let-chains/irrefutable-lets.rs)\r\n\r\n* [issue-88498.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2497-if-let-chains/issue-88498.rs), [issue-90722.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2497-if-let-chains/issue-90722.rs), [issue-92145.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2497-if-let-chains/issue-92145.rs) and [issue-93150.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2497-if-let-chains/issue-93150.rs) were bugs found by third parties and fixed overtime.\r\n\r\n* [Indexing was triggering a ICE due to a wrongly constructed MIR graph](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2497-if-let-chains/no-double-assigments.rs)\r\n\r\n* [Protects the precedence of `&&` in relation to other things](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2497-if-let-chains/protect-precedences.rs)\r\n\r\n* [`let_chains`, as well as `if_let_guard`, has a valid MIR graph that evaluates conditional expressions correctly](https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2497-if-let-chains/then-else-blocks.rs)\r\n\r\nMost of the infra-structure used by let chains is also used by `if` expressions in stable compiler versions since https://github.com/rust-lang/rust/pull/80357 and https://github.com/rust-lang/rust/pull/88572. As a result, no bugs were found since the integration of https://github.com/rust-lang/rust/pull/88642.\r\n\r\n## Possible future work\r\n\r\n* Let chains in match guards is implemented and working but stabilization is blocked by `if_let_guard`.\r\n\r\n* The usage of `let_chains` with `let_else` is possible but not implemented. Regardless, one attempt was introduced and closed in https://github.com/rust-lang/rust/pull/93437.\r\n\r\nThanks @Centril for creating the RFC and huge thanks (again) to @matthewjasper for all the reviews, mentoring and MIR implementations.\r\n\r\nFixes #53667",
  4746. locked: false,
  4747. closed_at: None,
  4748. created_at: Some(
  4749. "2022-03-14T10:35:54",
  4750. ),
  4751. updated_at: Some(
  4752. "2022-03-22T17:13:56",
  4753. ),
  4754. labels: [
  4755. "T-lang",
  4756. "S-waiting-on-review",
  4757. "proposed-final-comment-period",
  4758. "disposition-merge",
  4759. "I-lang-nominated",
  4760. ],
  4761. repository: "rust-lang/rust",
  4762. },
  4763. status_comment: StatusComment {
  4764. id: 1067658436,
  4765. fk_issue: 1586861,
  4766. fk_user: 20760818,
  4767. body: "Team member @joshtriplett has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @cramertj\n* [x] @joshtriplett\n* [x] @nikomatsakis\n* [ ] @pnkfelix\n* [ ] @scottmcm\n\nConcerns:\n\n* add-test-to-confirm-no-let-else-in-let-chain (https://github.com/rust-lang/rust/pull/94927#issuecomment-1068267198)\n* doc-pr (https://github.com/rust-lang/rust/pull/94927#issuecomment-1068120114)\n* irrefutable-lint (https://github.com/rust-lang/rust/pull/94927#issuecomment-1067658430)\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  4768. created_at: "2022-03-15T07:32:46",
  4769. updated_at: Some(
  4770. "2022-03-22T17:13:56",
  4771. ),
  4772. repository: "rust-lang/rust",
  4773. },
  4774. },
  4775. "rust-lang/cargo:10472:feat: Import cargo-add into cargo": FullFCP {
  4776. fcp: FCP {
  4777. id: 2215,
  4778. fk_issue: 1583979,
  4779. fk_initiator: 14314532,
  4780. fk_initiating_comment: 1069897254,
  4781. disposition: Some(
  4782. "merge",
  4783. ),
  4784. fk_bot_tracking_comment: 1069897294,
  4785. fcp_start: None,
  4786. fcp_closed: false,
  4787. },
  4788. reviews: [
  4789. Review {
  4790. reviewer: Reviewer {
  4791. id: 43198,
  4792. login: "ehuss",
  4793. },
  4794. approved: false,
  4795. },
  4796. Review {
  4797. reviewer: Reviewer {
  4798. id: 60961,
  4799. login: "epage",
  4800. },
  4801. approved: false,
  4802. },
  4803. Review {
  4804. reviewer: Reviewer {
  4805. id: 162737,
  4806. login: "joshtriplett",
  4807. },
  4808. approved: true,
  4809. },
  4810. Review {
  4811. reviewer: Reviewer {
  4812. id: 3709504,
  4813. login: "Eh2406",
  4814. },
  4815. approved: false,
  4816. },
  4817. Review {
  4818. reviewer: Reviewer {
  4819. id: 14314532,
  4820. login: "weihanglo",
  4821. },
  4822. approved: true,
  4823. },
  4824. ],
  4825. issue: FCPIssue {
  4826. id: 1583979,
  4827. number: 10472,
  4828. fk_milestone: None,
  4829. fk_user: 60961,
  4830. fk_assignee: Some(
  4831. 43198,
  4832. ),
  4833. open: true,
  4834. is_pull_request: true,
  4835. title: "feat: Import cargo-add into cargo",
  4836. body: "### Motivation\r\n\r\nThe reasons I'm aware of are:\r\n- Large interest, see #5586 \r\n- Make it easier to add a dependency when you don't care about the version (instead of having to find it or just using the major version if thats all you remember)\r\n- Provide a guided experience, including\r\n - Catch or prevent errors earlier in the process\r\n - Bring the Manifest format documentation into the terminal via `cargo add --help`\r\n - Using `version` and `path` for `dependencies` but `path` only for `dev-dependencies` (see crate-ci/cargo-release#288 which led to killercup/cargo-edit#480)\r\n\r\n### Drawbacks\r\n\r\n1. This is another area of consideration for new RFCs, like rust-lang/rfcs#3143 (this PR supports it) or rust-lang/rfcs#2906 (implementing it will require updating `cargo-add`)\r\n\r\n2. This is a high UX feature that will draw a lot of attention (ie Issue influx)\r\n\r\ne.g.\r\n- killercup/cargo-edit#521\r\n- killercup/cargo-edit#126\r\n- killercup/cargo-edit#217\r\n\r\nWe've tried to reduce the UX influx by focusing the scope to preserving semantic information (custom sort order, comments, etc) but being opinionated on syntax (style of strings, etc)\r\n\r\n### Behavior\r\n\r\nHelp output\r\n<details>\r\n\r\n```console\r\n$ cargo run -- add --help \r\ncargo-add \r\nAdd dependencies to a Cargo.toml manifest file \r\n \r\nUSAGE: \r\n cargo add [OPTIONS] <DEP>[@<VERSION>] [+<FEATURE>,...] ...\r\n cargo add [OPTIONS] <DEP_PATH> [+<FEATURE>,...] ...\r\n \r\nARGS: \r\n <DEP_ID>... \r\n Reference to a package to add as a dependency\r\n \r\n You can reference a packages by:\r\n - `<name>`, like `cargo add serde` (latest version will be used)\r\n - `<name>@<version-req>`, like `cargo add serde@1` or `cargo add serde@=1.0.38`\r\n - `<path>`, like `cargo add ./crates/parser/`\r\n \r\n Additionally, you can specify features for a dependency by following it with a \r\n `+<FEATURE>`. \r\n \r\nOPTIONS: \r\n --no-default-features\r\n Disable the default features\r\n \r\n --default-features \r\n Re-enable the default features \r\n \r\n -F, --features <FEATURES>\r\n Space-separated list of features to add \r\n \r\n Alternatively, you can specify features for a dependency by following it with a\r\n `+<FEATURE>`. \r\n\r\n --optional \r\n Mark the dependency as optional \r\n \r\n The package name will be exposed as feature of your crate.\r\n \r\n -v, --verbose\r\n Use verbose output (-vv very verbose/build.rs output)\r\n\r\n --no-optional\r\n Mark the dependency as required\r\n \r\n The package will be removed from your features.\r\n\r\n --color <WHEN>\r\n Coloring: auto, always, never\r\n\r\n -r, --rename <NAME>\r\n Rename the dependency\r\n \r\n Example uses:\r\n - Depending on multiple versions of a crate\r\n - Depend on crates with the same name from different registries\r\n\r\n --frozen\r\n Require Cargo.lock and cache are up to date\r\n\r\n --registry <NAME>\r\n Package registry for this dependency\r\n\r\n --locked\r\n Require Cargo.lock is up to date\r\n\r\n --manifest-path <PATH>\r\n Path to Cargo.toml\r\n\r\n -p, --package <SPEC>\r\n Package to modify\r\n\r\n --config <KEY=VALUE>\r\n Override a configuration value (unstable)\r\n\r\n --offline\r\n Run without accessing the network\r\n\r\n -q, --quiet \r\n Do not print cargo log messages \r\n\r\n -Z <FLAG> \r\n Unstable (nightly-only) flags to Cargo, see 'cargo -Z help' for details \r\n \r\n --dry-run \r\n Don't actually write the manifest \r\n \r\n -h, --help \r\n Print help information \r\n \r\nSECTION: \r\n -D, --dev\r\n Add as development dependency \r\n \r\n Dev-dependencies are not used when compiling a package for building, but are used for \r\n compiling tests, examples, and benchmarks.\r\n \r\n These dependencies are not propagated to other packages which depend on this package. \r\n \r\n -B, --build\r\n Add as build dependency\r\n \r\n Build-dependencies are the only dependencies available for use by build scripts\r\n (`build.rs` files). \r\n \r\n --target <TARGET> \r\n Add as dependency to the given target platform \r\n\r\nUNSTABLE: \r\n --git <URI> \r\n Git repository location\r\n \r\n Without any other information, cargo will use latest commit on the main branch. \r\n \r\n --branch <BRANCH> \r\n Git branch to download the crate from \r\n \r\n --tag <TAG> \r\n Git tag to download the crate from \r\n \r\n --rev <REV> \r\n Git reference to download the crate from \r\n \r\n This is the catch all, handling hashes to named references in remote repositories. \r\n\r\nEXAMPLES:\r\n $ cargo add regex --build\r\n $ cargo add trycmd --dev\r\n $ cargo add ./crate/parser/\r\n $ cargo add serde +derive serde_json\r\n```\r\n\r\n</details>\r\n\r\nExample commands\r\n```rust\r\ncargo add regex\r\ncargo add regex serde\r\ncargo add regex@1\r\ncargo add regex@~1.0\r\ncargo add ../dependency\r\n```\r\nFor an exhaustive set of examples, see [tests](https://github.com/killercup/cargo-edit/blob/merge-add/crates/cargo-add/tests/testsuite/cargo_add.rs) and associated snapshots\r\n\r\nParticular points\r\n- Effectively there are two modes\r\n - Fill in any relevant field for one package\r\n - Add multiple packages, erroring for fields that are package-specific (`--git`, `--rename`, `--features`, etc)\r\n- We infer if the `dependencies` table is sorted and preserve that sorting when adding a new dependency\r\n- Adding a workspace dependency\r\n - dev-dependencies always use path\r\n - all other dependencies use version + path\r\n- Behavior is idempotent, allowing you to run `cargo add serde +derive serde_json` safely if you already had a dependency on `serde` but without `serde_json`\r\n- When a registry dependency's version req is unspecified, we'll first reuse the version req from another dependency section in the manifest. If that doesn't exist, we'll use the latest version in the registry as the version req\r\n\r\nFeature gates: `-Zunstable-options`\r\n- `--git` support\r\n - Doesn't populate version in manifest\r\n - Doesn't validate name with what is in repo\r\n - Unsure whether to have `--tag`, `--rev`, `--branch` or to have an inline syntax like pkgids\r\n - Unsure whether to have `--git` or to have an inline syntax that is unambiguous so it works in the multi-package case\r\n- Inline-feature addition `cargo add serde +derive serde_json`\r\n - Intention is to allow documenting dependency groups in a single line\r\n - Gated because we didn't have more time to collect feedback\r\n\r\n### Additional decisions\r\n\r\nAccepting the proposed `cargo-add` as-is assumes the acceptance of the following:\r\n- Add the `-F` short-hand for `--features` to all relevant cargo commands\r\n- Support `@` in pkgids in other commands where we accept `:`\r\n- Add support for `<name>@<version>` in more commands, like `cargo yank` and `cargo install`\r\n\r\n### Alternatives\r\n\r\n- Use `:` instead of `@` for versions\r\n- Flags like `--features`, `--optional`, `--no-default-features` would be position-sensitive, ie they would only apply to the crate immediate preceding them\r\n - This removes the dual-mode nature of the command and remove the need for the `+feature` syntax (`cargo add serde -F derive serde_json`)\r\n - There was concern over the rarity of position-sensitive flags in CLIs for adopting it here\r\n- Support a `--sort` flag to sort the dependencies (existed previously)\r\n - To keep the scope small, we didn't want general manifest editing capabilities\r\n- `--upgrade <POLICY>` flag to choose constraint (existed previously)\r\n - The flag was confusing as-is and we feel we should instead encourage people towards `^`\r\n- `--allow-prerelease` so a `cargo add clap` can choose among pre-releases as well\r\n - We felt the pre-release story is too weak in cargo-generally atm for making it first class in `cargo-add`\r\n\r\n### Prior Art\r\n\r\n- *(Python)* [poetry add](https://python-poetry.org/docs/cli/#add)\r\n - `git+` is needed for inferring git dependencies, no separate `--git` flags\r\n - git branch is specified via a URL fragment, instead of a `--branch`\r\n- *(Javascript)* [yarn add](https://yarnpkg.com/cli/add)\r\n - `name@data` where data can be version, git (with fragment for branch), etc\r\n - `-E` / `--exact`, `-T` / `--tilde`, `-C` / `--caret` to control version requirement operator instead of `--upgrade <policy>` (also controlled through `defaultSemverRangePrefix` in config)\r\n - `--cached` for using the lock file (killercup/cargo-edit#41)\r\n - In addition to `--dev`, it has `--prefer-dev` which will only add the dependency if it doesn't already exist in `dependencies` as well as `dev-dependencies`\r\n - `--mode update-lockfile` will ensure the lock file gets updated as well\r\n- *(Javascript)* [pnpm-add](https://pnpm.io/cli/add)\r\n- *(Javascript)* npm doesn't have a native solution\r\n - Specify version with `@<version>`\r\n - Also overloads `<name>[@<version>]` with path and repo\r\n - Supports a git host-specific protocol for shorthand, like `github:user/repo`\r\n - Uses fragment for git ref, seems to have some kind of special semver syntax for tags?\r\n - Only supports `--save-exact` / `-E` for operators outside of the default\r\n- *(Go)* [go get](https://go.dev/ref/mod#go-get)\r\n - Specify version with `@<version>`\r\n - Remove dependency with `@none`\r\n- *(Haskell)* stack doesn't seem to have a native solution\r\n- *(Julia)* [pkg Add](https://docs.julialang.org/en/v1/stdlib/Pkg/)\r\n- *(Ruby)* [bundle add](https://bundler.io/v2.2/man/bundle-add.1.html)\r\n - Uses `--version` / `-v` instead of `--vers` (we use `--vers` because of `--version` / `-V`)\r\n - `--source` instead of `path` (`path` correlates to manifest field)\r\n - Uses `--git` / `--branch` like `cargo-add`\r\n- *(Dart)* [pub add](https://dart.dev/tools/pub/cmd/pub-add)\r\n - Uses `--git-url` instead of `--git`\r\n - Uses `--git-ref` instead of `--branch`, `--tag`, `--rev`\r\n\r\n### Future Possibilities\r\n\r\n- Update lock file accordingly\r\n- Exploring the idea of a [`--local` flag](https://github.com/killercup/cargo-edit/issues/590)\r\n- Take the MSRV into account when automatically creating version req (https://github.com/killercup/cargo-edit/issues/587)\r\n- Integrate rustsec to report advisories on new dependencies (https://github.com/killercup/cargo-edit/issues/512)\r\n- Integrate with licensing to report license, block add, etc (e.g. https://github.com/killercup/cargo-edit/issues/386)\r\n- Pull version from lock file (https://github.com/killercup/cargo-edit/issues/41)\r\n- Exploring if any vendoring integration would be beneficial (currently errors)\r\n- Upstream `cargo-rm`, `cargo-upgrade`, and `cargo-set-version` (in that order of priority)\r\n- Update crates.io with `cargo add` snippets in addition to or replacing the manifest snippets\r\n\r\nFor more, see https://github.com/killercup/cargo-edit/issues?q=is%3Aissue+is%3Aopen+label%3Acargo-add\r\n\r\n### How should we test and review this PR?\r\n\r\nThis is intentionally broken up into several commits to help reviewing\r\n1. Import of production code from cargo-edit's `merge-add` branch, with only changes made to let it compile (e.g. fixing up of `use` statements).\r\n2. Import of test code / snapshots. The only changes outside of the import were to add the `snapbox` dev-dependency and to `mod cargo_add` into the testsuite\r\n3. This extends the work in #10425 so I could add back in the color highlighting I had to remove as part of switching `cargo-add` from direct termcolor calls to calling into `Shell`\r\n\r\nStructure-wise, this is similar to other commands\r\n- `bin` only defines a CLI and adapts it to an `AddOptions`\r\n- `ops` contains a focused API with everything buried under it\r\n\r\nThe \"op\" contains a directory, instead of just a file, because of the amount of content. Currently, all editing code is contained in there. Most of this will be broken out and reused when other `cargo-edit` commands are added but holding off on that for now to separate out the editing API discussions from just getting the command in.\r\n\r\nWithin the github UI, I'd recommend looking at individual commits (and the `merge-add` branch if interested), skipping commit 2. Commit 2 would be easier to browse locally.\r\n\r\n`cargo-add` is mostly covered by end-to-end tests written using `snapbox`, including error cases. \r\n\r\nThere is additional cleanup that would ideally happen that was excluded intentionally from this PR to keep it better scoped, including\r\n- Consolidating environment variables for end-to-end tests of `cargo`\r\n- Pulling out the editing API, as previously mentioned\r\n - Where the editing API should live (`cargo::edit`?)\r\n - Any more specific naming of types to reduce clashes (e.g. `Dependency` or `Manifest` being fairly generic).\r\n- Possibly sharing `SourceId` creation between `cargo install` and `cargo edit`\r\n- Explore using `snapbox` in more of cargo's tests\r\n\r\nImplementation justifications:\r\n- `dunce` and `pathdiff` dependencies: needed for taking paths relative to the user and make them relative to the manifest being edited\r\n- `indexmap` dependency (already a transitive dependency): Useful for preserving uniqueness while preserving order, like with feature values\r\n- `snapbox` dev-dependency: Originally it was used to make it easy to update tests as the UX changed in prep for merging but it had the added benefit of making some UX bugs easier to notice so they got fixed. Overall, I'd like to see it become the cargo-agnostic version of `cargo-test-support` so there is a larger impact when improvements are made\r\n- `parse_feature` function: `CliFeatures` forces items through a `BTreeSet`, losing the users specified order which we wanted to preserve.\r\n\r\n### Additional Information\r\n\r\nSee also [the internals thread](https://internals.rust-lang.org/t/feedback-on-cargo-add-before-its-merged/16024).\r\n\r\nFixes #5586 ",
  4837. locked: false,
  4838. closed_at: None,
  4839. created_at: Some(
  4840. "2022-03-10T20:05:26",
  4841. ),
  4842. updated_at: Some(
  4843. "2022-03-18T11:22:33",
  4844. ),
  4845. labels: [
  4846. "T-cargo",
  4847. "proposed-final-comment-period",
  4848. "disposition-merge",
  4849. "S-waiting-on-review",
  4850. ],
  4851. repository: "rust-lang/cargo",
  4852. },
  4853. status_comment: StatusComment {
  4854. id: 1069897294,
  4855. fk_issue: 1583979,
  4856. fk_user: 20760818,
  4857. body: "Team member @weihanglo has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [ ] @Eh2406\n* [ ] @ehuss\n* [ ] @epage\n* [x] @joshtriplett\n* [x] @weihanglo\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  4858. created_at: "2022-03-17T02:25:15",
  4859. updated_at: Some(
  4860. "2022-03-18T11:22:32",
  4861. ),
  4862. repository: "rust-lang/cargo",
  4863. },
  4864. },
  4865. "rust-lang/rust:41263:Tracking issue for `ToOwned::clone_into` (`toowned_clone_into`)": FullFCP {
  4866. fcp: FCP {
  4867. id: 2192,
  4868. fk_issue: 30499,
  4869. fk_initiator: 783247,
  4870. fk_initiating_comment: 1057368222,
  4871. disposition: Some(
  4872. "merge",
  4873. ),
  4874. fk_bot_tracking_comment: 1057368239,
  4875. fcp_start: None,
  4876. fcp_closed: false,
  4877. },
  4878. reviews: [
  4879. Review {
  4880. reviewer: Reviewer {
  4881. id: 162737,
  4882. login: "joshtriplett",
  4883. },
  4884. approved: false,
  4885. },
  4886. Review {
  4887. reviewer: Reviewer {
  4888. id: 278509,
  4889. login: "Amanieu",
  4890. },
  4891. approved: false,
  4892. },
  4893. Review {
  4894. reviewer: Reviewer {
  4895. id: 456674,
  4896. login: "BurntSushi",
  4897. },
  4898. approved: false,
  4899. },
  4900. Review {
  4901. reviewer: Reviewer {
  4902. id: 783247,
  4903. login: "m-ou-se",
  4904. },
  4905. approved: true,
  4906. },
  4907. Review {
  4908. reviewer: Reviewer {
  4909. id: 1940490,
  4910. login: "dtolnay",
  4911. },
  4912. approved: true,
  4913. },
  4914. Review {
  4915. reviewer: Reviewer {
  4916. id: 1993852,
  4917. login: "yaahc",
  4918. },
  4919. approved: true,
  4920. },
  4921. ],
  4922. issue: FCPIssue {
  4923. id: 30499,
  4924. number: 41263,
  4925. fk_milestone: None,
  4926. fk_user: 18526288,
  4927. fk_assignee: None,
  4928. open: true,
  4929. is_pull_request: false,
  4930. title: "Tracking issue for `ToOwned::clone_into` (`toowned_clone_into`)",
  4931. body: "Feature added in PR https://github.com/rust-lang/rust/pull/41009\r\n\r\nQuestions raised in the PR:\r\n\r\n- [ ] The directionality is weird. In clone_from and assignment, the data moves right-to-left, but this moves it left-to-right. And that means that autoref doesn't work well, usually forcing you to write &mut.\r\n\r\n- [ ] But fixing that would mean putting it somewhere else, since the Self in ToOwned is the wrong type for what this needs to be. And moving it while still being overridable and providing a default is hard.",
  4932. locked: false,
  4933. closed_at: None,
  4934. created_at: Some(
  4935. "2017-04-13T00:10:07",
  4936. ),
  4937. updated_at: Some(
  4938. "2022-03-09T18:04:40",
  4939. ),
  4940. labels: [
  4941. "T-libs-api",
  4942. "B-unstable",
  4943. "proposed-final-comment-period",
  4944. "C-tracking-issue",
  4945. "disposition-merge",
  4946. "Libs-Tracked",
  4947. ],
  4948. repository: "rust-lang/rust",
  4949. },
  4950. status_comment: StatusComment {
  4951. id: 1057368239,
  4952. fk_issue: 30499,
  4953. fk_user: 20760818,
  4954. body: "Team member @m-ou-se has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [ ] @Amanieu\n* [ ] @BurntSushi\n* [x] @dtolnay\n* [ ] @joshtriplett\n* [x] @m-ou-se\n* [x] @yaahc\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  4955. created_at: "2022-03-02T20:55:07",
  4956. updated_at: Some(
  4957. "2022-03-09T18:04:40",
  4958. ),
  4959. repository: "rust-lang/rust",
  4960. },
  4961. },
  4962. "rust-lang/cargo:9925:Adds backoff mechanism for retry": FullFCP {
  4963. fcp: FCP {
  4964. id: 2046,
  4965. fk_issue: 1417900,
  4966. fk_initiator: 64996,
  4967. fk_initiating_comment: 934891723,
  4968. disposition: Some(
  4969. "merge",
  4970. ),
  4971. fk_bot_tracking_comment: 934891739,
  4972. fcp_start: None,
  4973. fcp_closed: false,
  4974. },
  4975. reviews: [
  4976. Review {
  4977. reviewer: Reviewer {
  4978. id: 43198,
  4979. login: "ehuss",
  4980. },
  4981. approved: false,
  4982. },
  4983. Review {
  4984. reviewer: Reviewer {
  4985. id: 64996,
  4986. login: "alexcrichton",
  4987. },
  4988. approved: true,
  4989. },
  4990. Review {
  4991. reviewer: Reviewer {
  4992. id: 162737,
  4993. login: "joshtriplett",
  4994. },
  4995. approved: false,
  4996. },
  4997. Review {
  4998. reviewer: Reviewer {
  4999. id: 3709504,
  5000. login: "Eh2406",
  5001. },
  5002. approved: true,
  5003. },
  5004. ],
  5005. issue: FCPIssue {
  5006. id: 1417900,
  5007. number: 9925,
  5008. fk_milestone: None,
  5009. fk_user: 44697459,
  5010. fk_assignee: Some(
  5011. 3709504,
  5012. ),
  5013. open: true,
  5014. is_pull_request: true,
  5015. title: "Adds backoff mechanism for retry",
  5016. body: "Addresses #9882 \r\n\r\nAdds an exponential backoff mechanism for network retries.\r\n\r\nAdds 2 additional `net` configuration:\r\n- `retry-max-time`: Upper bound for exponential backoff time\r\n- `retry-delay`: If present, override exponential backoff time with constant delay time (in second)\r\n\r\n---\r\n\r\nWould like to have some opinion on the PR first, before continuing.\r\nAlso, I'm not sure how to do time/duration-based testing in Rust, so I'm not sure how to devise a test for this.",
  5017. locked: false,
  5018. closed_at: None,
  5019. created_at: Some(
  5020. "2021-09-20T10:46:25",
  5021. ),
  5022. updated_at: Some(
  5023. "2022-02-24T21:25:06",
  5024. ),
  5025. labels: [
  5026. "T-cargo",
  5027. "proposed-final-comment-period",
  5028. "disposition-merge",
  5029. "S-waiting-on-author",
  5030. ],
  5031. repository: "rust-lang/cargo",
  5032. },
  5033. status_comment: StatusComment {
  5034. id: 934891739,
  5035. fk_issue: 1417900,
  5036. fk_user: 20760818,
  5037. body: "Team member @alexcrichton has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Eh2406\n* [x] @alexcrichton\n* [ ] @ehuss\n* [ ] @joshtriplett\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  5038. created_at: "2021-10-05T21:45:57",
  5039. updated_at: Some(
  5040. "2021-10-05T22:12:37",
  5041. ),
  5042. repository: "rust-lang/cargo",
  5043. },
  5044. },
  5045. "rust-lang/cargo:10344:Auto-switch to multi-sources vendor directory layout": FullFCP {
  5046. fcp: FCP {
  5047. id: 2172,
  5048. fk_issue: 1539703,
  5049. fk_initiator: 64996,
  5050. fk_initiating_comment: 1035052340,
  5051. disposition: Some(
  5052. "merge",
  5053. ),
  5054. fk_bot_tracking_comment: 1035052370,
  5055. fcp_start: None,
  5056. fcp_closed: false,
  5057. },
  5058. reviews: [
  5059. Review {
  5060. reviewer: Reviewer {
  5061. id: 43198,
  5062. login: "ehuss",
  5063. },
  5064. approved: true,
  5065. },
  5066. Review {
  5067. reviewer: Reviewer {
  5068. id: 64996,
  5069. login: "alexcrichton",
  5070. },
  5071. approved: true,
  5072. },
  5073. Review {
  5074. reviewer: Reviewer {
  5075. id: 162737,
  5076. login: "joshtriplett",
  5077. },
  5078. approved: false,
  5079. },
  5080. Review {
  5081. reviewer: Reviewer {
  5082. id: 3709504,
  5083. login: "Eh2406",
  5084. },
  5085. approved: true,
  5086. },
  5087. ],
  5088. issue: FCPIssue {
  5089. id: 1539703,
  5090. number: 10344,
  5091. fk_milestone: None,
  5092. fk_user: 14314532,
  5093. fk_assignee: Some(
  5094. 64996,
  5095. ),
  5096. open: true,
  5097. is_pull_request: true,
  5098. title: "Auto-switch to multi-sources vendor directory layout",
  5099. body: "<!-- homu-ignore:start -->\r\n### What does this PR try to resolve?\r\n\r\n`cargo-vendor` has been broken for a while, there is no a clear alternative way to solve the situation described in #10310. This PR tries to do what `--no-merge-sources` does but automatically switching to multi-sources layout instead of introducing the flag. (see https://github.com/rust-lang/cargo/pull/10344#pullrequestreview-868113795 and https://github.com/rust-lang/cargo/pull/10344#issuecomment-1032994506)\r\n\r\nFixes #10310\r\n\r\n### How should we test and review this PR?\r\n\r\nPart of the logic is copied from https://github.com/alexcrichton/cargo-vendor.\r\n\r\nSeveral tests are updated and added:\r\n\r\n- 🆕 `vendor::duplicate_version_from_multiple_sources`: Auto-switch between non-merged and merged sources.\r\n- ❌ `vendor::git_duplicate`: Removed. cargo-vendor now can auto-switch.\r\n- ❌ `vendor::vendor_sample_config`: Merged into `vendor::vendor_simple`.\r\n\r\n### Additional information\r\n\r\nThere are somethings I am uncertain:\r\n\r\n- [x] When switching between non-merged and merged sources. `cargo-vendor` removes the entire vendor directory. Should cargo emit a warning or just error out and tell user the incompatibility between merged and non-merged? Generally removing the vendor dir should not be a destructive operation but thing not always goes as we thought 😆 \r\n**Solved**: See https://github.com/rust-lang/cargo/pull/10344#discussion_r795852617\r\n- [x] The `cargo::util::short_hash` is not compatible with [the one in cargo-vendor]. I personally prefer to use `util::short_hash` instead, but if the compatibility is more important I am also ok to copy it over.\r\n**Solved**: See https://github.com/rust-lang/cargo/pull/10344#discussion_r796996824\r\n\r\n[the one in cargo-vendor]: https://github.com/alexcrichton/cargo-vendor/blob/07570e23/src/main.rs#L568-L575\r\n\r\n<!-- homu-ignore:end -->\r\n",
  5100. locked: false,
  5101. closed_at: None,
  5102. created_at: Some(
  5103. "2022-01-31T04:31:17",
  5104. ),
  5105. updated_at: Some(
  5106. "2022-03-10T15:45:37",
  5107. ),
  5108. labels: [
  5109. "T-cargo",
  5110. "proposed-final-comment-period",
  5111. "disposition-merge",
  5112. "S-waiting-on-author",
  5113. ],
  5114. repository: "rust-lang/cargo",
  5115. },
  5116. status_comment: StatusComment {
  5117. id: 1035052370,
  5118. fk_issue: 1539703,
  5119. fk_user: 20760818,
  5120. body: "Team member @alexcrichton has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Eh2406\n* [x] @alexcrichton\n* [x] @ehuss\n* [ ] @joshtriplett\n\nConcerns:\n\n* directory-source (https://github.com/rust-lang/cargo/pull/10344#issuecomment-1035305157)\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  5121. created_at: "2022-02-10T15:26:37",
  5122. updated_at: Some(
  5123. "2022-02-25T18:39:32",
  5124. ),
  5125. repository: "rust-lang/cargo",
  5126. },
  5127. },
  5128. "rust-lang/rust:93044:Add forwarding impls for Read, Write, Seek to Arc, Rc": FullFCP {
  5129. fcp: FCP {
  5130. id: 2200,
  5131. fk_issue: 1526589,
  5132. fk_initiator: 783247,
  5133. fk_initiating_comment: 1062941258,
  5134. disposition: Some(
  5135. "merge",
  5136. ),
  5137. fk_bot_tracking_comment: 1062941276,
  5138. fcp_start: None,
  5139. fcp_closed: false,
  5140. },
  5141. reviews: [
  5142. Review {
  5143. reviewer: Reviewer {
  5144. id: 162737,
  5145. login: "joshtriplett",
  5146. },
  5147. approved: false,
  5148. },
  5149. Review {
  5150. reviewer: Reviewer {
  5151. id: 278509,
  5152. login: "Amanieu",
  5153. },
  5154. approved: false,
  5155. },
  5156. Review {
  5157. reviewer: Reviewer {
  5158. id: 456674,
  5159. login: "BurntSushi",
  5160. },
  5161. approved: true,
  5162. },
  5163. Review {
  5164. reviewer: Reviewer {
  5165. id: 783247,
  5166. login: "m-ou-se",
  5167. },
  5168. approved: true,
  5169. },
  5170. Review {
  5171. reviewer: Reviewer {
  5172. id: 1940490,
  5173. login: "dtolnay",
  5174. },
  5175. approved: false,
  5176. },
  5177. Review {
  5178. reviewer: Reviewer {
  5179. id: 1993852,
  5180. login: "yaahc",
  5181. },
  5182. approved: false,
  5183. },
  5184. ],
  5185. issue: FCPIssue {
  5186. id: 1526589,
  5187. number: 93044,
  5188. fk_milestone: None,
  5189. fk_user: 105766,
  5190. fk_assignee: Some(
  5191. 783247,
  5192. ),
  5193. open: true,
  5194. is_pull_request: true,
  5195. title: "Add forwarding impls for Read, Write, Seek to Arc, Rc",
  5196. body: "This adds forwarding impls for `std::io::Read`, `std::io::Write`, and `std::io::Seek` to `alloc:sync::Arc` and `alloc::rc::Rc`. This is relevant for types such as `std::fs::File`, `std::net::TcpStream`, and `std::os::unix::UnixStream` which [implement `Read`, `Write`, and `Seek` for `&T`](https://doc.rust-lang.org/stable/std/io/trait.Read.html#impl-Read-12).\r\n\r\nIt is currently possible to do this manually through wrappers (See the \"Implement a forwarding wrapper by hand\" section for an example), but providing forwarding impls makes this pattern nicer to use. In some cases this can also be done with an extra reference, as shown below:\r\n\r\n```rust\r\nlet stream = TcpStream::connect(\"localhost:8080\");\r\nlet stream = Arc::new(stream);\r\n\r\n&stream1.write(b\"hello world\")?; // OK: Read is available for &Arc<TcpStream>.\r\nstream1.write(b\"hello world\")?; // Error: Read is not available for Arc<TcpStream>.\r\n // (Enabled by this PR)\r\n```\r\n\r\nThe reason why we want `Arc<T>: Read where &T: Read` is because this enables `Arc<T>` to be passed directly into APIs which expect `T: Read`:\r\n\r\n```rust\r\nfn operate<R: Read>(reader: R) {}\r\n\r\nlet stream = TcpStream::connect(\"localhost:8080\");\r\nlet stream = Arc::new(stream);\r\noperate(stream); // Error: `Arc<TcpStream>` does not implement `Read`\r\n // (Enabled by this PR)\r\n```\r\n\r\n## Implement a forwarding wrapper by hand\r\n\r\nThese trait impls do not allow anything which wasn't allowed before. Dereferencing to the inner type to get `Arc<T>: Read` to work is already possible by creating an intermediate type, as shown here:\r\n\r\n```rust\r\n/// A variant of `Arc` that delegates IO traits if available on `&T`.\r\n#[derive(Debug)]\r\npub struct IoArc<T>(Arc<T>);\r\n\r\nimpl<T> IoArc<T> {\r\n /// Create a new instance of IoArc.\r\n pub fn new(data: T) -> Self {\r\n Self(Arc::new(data))\r\n }\r\n}\r\n\r\nimpl<T> Read for IoArc<T>\r\nwhere\r\n for<'a> &'a T: Read,\r\n{\r\n fn read(&mut self, buf: &mut [u8]) -> io::Result<usize> {\r\n (&mut &*self.0).read(buf)\r\n }\r\n}\r\n\r\nimpl<T> Write for IoArc<T>\r\nwhere\r\n for<'a> &'a T: Write,\r\n{\r\n fn write(&mut self, buf: &[u8]) -> io::Result<usize> {\r\n (&mut &*self.0).write(buf)\r\n }\r\n\r\n fn flush(&mut self) -> io::Result<()> {\r\n (&mut &*self.0).flush()\r\n }\r\n}\r\n\r\n// forward `Clone`, `Seek` as well here\r\n```\r\n\r\n## References\r\n\r\n- [IO trait delegation for `Arc` blog post](https://blog.yoshuawuyts.com/io-trait-delegation-for-arc/)\r\n- [`async-dup` crate](https://docs.rs/async-dup/latest/async_dup/)\r\n- [`io-arc` crate](https://docs.rs/io-arc/latest/io_arc/)\r\n\r\nJoint work with @yoshuawuyts. ",
  5197. locked: false,
  5198. closed_at: None,
  5199. created_at: Some(
  5200. "2022-01-18T18:28:24",
  5201. ),
  5202. updated_at: Some(
  5203. "2022-03-09T20:30:56",
  5204. ),
  5205. labels: [
  5206. "T-libs-api",
  5207. "proposed-final-comment-period",
  5208. "disposition-merge",
  5209. "needs-fcp",
  5210. "S-waiting-on-fcp",
  5211. ],
  5212. repository: "rust-lang/rust",
  5213. },
  5214. status_comment: StatusComment {
  5215. id: 1062941276,
  5216. fk_issue: 1526589,
  5217. fk_user: 20760818,
  5218. body: "Team member @m-ou-se has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [ ] @Amanieu\n* [x] @BurntSushi\n* [ ] @dtolnay\n* [ ] @joshtriplett\n* [x] @m-ou-se\n* [ ] @yaahc\n\nConcerns:\n\n* behavior on impls that mutate the reference (https://github.com/rust-lang/rust/pull/93044#issuecomment-1063283366)\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  5219. created_at: "2022-03-09T13:50:59",
  5220. updated_at: Some(
  5221. "2022-03-09T19:31:27",
  5222. ),
  5223. repository: "rust-lang/rust",
  5224. },
  5225. },
  5226. "rust-lang/reference:1152:Specify guarantees for repr(rust) structs": FullFCP {
  5227. fcp: FCP {
  5228. id: 2224,
  5229. fk_issue: 1540023,
  5230. fk_initiator: 162737,
  5231. fk_initiating_comment: 1075444253,
  5232. disposition: Some(
  5233. "merge",
  5234. ),
  5235. fk_bot_tracking_comment: 1075453670,
  5236. fcp_start: None,
  5237. fcp_closed: false,
  5238. },
  5239. reviews: [
  5240. Review {
  5241. reviewer: Reviewer {
  5242. id: 155238,
  5243. login: "nikomatsakis",
  5244. },
  5245. approved: false,
  5246. },
  5247. Review {
  5248. reviewer: Reviewer {
  5249. id: 162737,
  5250. login: "joshtriplett",
  5251. },
  5252. approved: true,
  5253. },
  5254. Review {
  5255. reviewer: Reviewer {
  5256. id: 173127,
  5257. login: "pnkfelix",
  5258. },
  5259. approved: false,
  5260. },
  5261. Review {
  5262. reviewer: Reviewer {
  5263. id: 5963049,
  5264. login: "cramertj",
  5265. },
  5266. approved: false,
  5267. },
  5268. Review {
  5269. reviewer: Reviewer {
  5270. id: 18526288,
  5271. login: "scottmcm",
  5272. },
  5273. approved: false,
  5274. },
  5275. ],
  5276. issue: FCPIssue {
  5277. id: 1540023,
  5278. number: 1152,
  5279. fk_milestone: None,
  5280. fk_user: 928074,
  5281. fk_assignee: None,
  5282. open: true,
  5283. is_pull_request: true,
  5284. title: "Specify guarantees for repr(rust) structs",
  5285. body: "Closes: #1151",
  5286. locked: false,
  5287. closed_at: None,
  5288. created_at: Some(
  5289. "2022-01-31T13:06:24",
  5290. ),
  5291. updated_at: Some(
  5292. "2022-03-22T19:01:34",
  5293. ),
  5294. labels: [
  5295. "I-lang-nominated",
  5296. "T-lang",
  5297. ],
  5298. repository: "rust-lang/reference",
  5299. },
  5300. status_comment: StatusComment {
  5301. id: 1075453670,
  5302. fk_issue: 1540023,
  5303. fk_user: 20760818,
  5304. body: "Team member @joshtriplett has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [ ] @cramertj\n* [x] @joshtriplett\n* [ ] @nikomatsakis\n* [ ] @pnkfelix\n* [ ] @scottmcm\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  5305. created_at: "2022-03-22T18:00:29",
  5306. updated_at: Some(
  5307. "2022-03-22T18:00:32",
  5308. ),
  5309. repository: "rust-lang/reference",
  5310. },
  5311. },
  5312. "rust-lang/rust:20561:Tracking issue for Consistent no-prelude attribute (RFC 501)": FullFCP {
  5313. fcp: FCP {
  5314. id: 2194,
  5315. fk_issue: 8163,
  5316. fk_initiator: 173127,
  5317. fk_initiating_comment: 1059258728,
  5318. disposition: Some(
  5319. "close",
  5320. ),
  5321. fk_bot_tracking_comment: 1059258740,
  5322. fcp_start: None,
  5323. fcp_closed: false,
  5324. },
  5325. reviews: [
  5326. Review {
  5327. reviewer: Reviewer {
  5328. id: 77424,
  5329. login: "eddyb",
  5330. },
  5331. approved: true,
  5332. },
  5333. Review {
  5334. reviewer: Reviewer {
  5335. id: 155238,
  5336. login: "nikomatsakis",
  5337. },
  5338. approved: false,
  5339. },
  5340. Review {
  5341. reviewer: Reviewer {
  5342. id: 173127,
  5343. login: "pnkfelix",
  5344. },
  5345. approved: true,
  5346. },
  5347. Review {
  5348. reviewer: Reviewer {
  5349. id: 332036,
  5350. login: "oli-obk",
  5351. },
  5352. approved: true,
  5353. },
  5354. Review {
  5355. reviewer: Reviewer {
  5356. id: 679122,
  5357. login: "nagisa",
  5358. },
  5359. approved: false,
  5360. },
  5361. Review {
  5362. reviewer: Reviewer {
  5363. id: 831192,
  5364. login: "wesleywiser",
  5365. },
  5366. approved: true,
  5367. },
  5368. Review {
  5369. reviewer: Reviewer {
  5370. id: 1295100,
  5371. login: "davidtwco",
  5372. },
  5373. approved: true,
  5374. },
  5375. Review {
  5376. reviewer: Reviewer {
  5377. id: 1408859,
  5378. login: "Aaron1011",
  5379. },
  5380. approved: true,
  5381. },
  5382. Review {
  5383. reviewer: Reviewer {
  5384. id: 1606434,
  5385. login: "estebank",
  5386. },
  5387. approved: false,
  5388. },
  5389. Review {
  5390. reviewer: Reviewer {
  5391. id: 1822483,
  5392. login: "cjgillot",
  5393. },
  5394. approved: false,
  5395. },
  5396. Review {
  5397. reviewer: Reviewer {
  5398. id: 1825894,
  5399. login: "michaelwoerister",
  5400. },
  5401. approved: false,
  5402. },
  5403. Review {
  5404. reviewer: Reviewer {
  5405. id: 5751617,
  5406. login: "petrochenkov",
  5407. },
  5408. approved: true,
  5409. },
  5410. Review {
  5411. reviewer: Reviewer {
  5412. id: 20113453,
  5413. login: "matthewjasper",
  5414. },
  5415. approved: true,
  5416. },
  5417. Review {
  5418. reviewer: Reviewer {
  5419. id: 29864074,
  5420. login: "lcnr",
  5421. },
  5422. approved: true,
  5423. },
  5424. ],
  5425. issue: FCPIssue {
  5426. id: 8163,
  5427. number: 20561,
  5428. fk_milestone: None,
  5429. fk_user: 709807,
  5430. fk_assignee: None,
  5431. open: true,
  5432. is_pull_request: false,
  5433. title: "Tracking issue for Consistent no-prelude attribute (RFC 501)",
  5434. body: "https://github.com/rust-lang/rfcs/pull/501\n",
  5435. locked: false,
  5436. closed_at: None,
  5437. created_at: Some(
  5438. "2015-01-05T05:56:57",
  5439. ),
  5440. updated_at: Some(
  5441. "2022-03-07T06:48:35",
  5442. ),
  5443. labels: [
  5444. "B-RFC-approved",
  5445. "T-compiler",
  5446. "proposed-final-comment-period",
  5447. "C-tracking-issue",
  5448. "disposition-close",
  5449. "S-tracking-design-concerns",
  5450. ],
  5451. repository: "rust-lang/rust",
  5452. },
  5453. status_comment: StatusComment {
  5454. id: 1059258740,
  5455. fk_issue: 8163,
  5456. fk_user: 20760818,
  5457. body: "Team member @pnkfelix has proposed to close this. The next step is review by the rest of the tagged team members:\n\n* [x] @Aaron1011\n* [ ] @cjgillot\n* [x] @davidtwco\n* [x] @eddyb\n* [ ] @estebank\n* [x] @lcnr\n* [x] @matthewjasper\n* [ ] @michaelwoerister\n* [ ] @nagisa\n* [ ] @nikomatsakis\n* [x] @oli-obk\n* [x] @petrochenkov\n* [x] @pnkfelix\n* [x] @wesleywiser\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  5458. created_at: "2022-03-04T15:23:33",
  5459. updated_at: Some(
  5460. "2022-03-07T06:48:35",
  5461. ),
  5462. repository: "rust-lang/rust",
  5463. },
  5464. },
  5465. "rust-lang/rfcs:3161:[RFC2603] Extend `<const>` to include `str` and structural constants.": FullFCP {
  5466. fcp: FCP {
  5467. id: 1959,
  5468. fk_issue: 1382166,
  5469. fk_initiator: 77424,
  5470. fk_initiating_comment: 896587182,
  5471. disposition: Some(
  5472. "merge",
  5473. ),
  5474. fk_bot_tracking_comment: 896587191,
  5475. fcp_start: None,
  5476. fcp_closed: false,
  5477. },
  5478. reviews: [
  5479. Review {
  5480. reviewer: Reviewer {
  5481. id: 77424,
  5482. login: "eddyb",
  5483. },
  5484. approved: true,
  5485. },
  5486. Review {
  5487. reviewer: Reviewer {
  5488. id: 155238,
  5489. login: "nikomatsakis",
  5490. },
  5491. approved: true,
  5492. },
  5493. Review {
  5494. reviewer: Reviewer {
  5495. id: 173127,
  5496. login: "pnkfelix",
  5497. },
  5498. approved: false,
  5499. },
  5500. Review {
  5501. reviewer: Reviewer {
  5502. id: 332036,
  5503. login: "oli-obk",
  5504. },
  5505. approved: true,
  5506. },
  5507. Review {
  5508. reviewer: Reviewer {
  5509. id: 679122,
  5510. login: "nagisa",
  5511. },
  5512. approved: true,
  5513. },
  5514. Review {
  5515. reviewer: Reviewer {
  5516. id: 831192,
  5517. login: "wesleywiser",
  5518. },
  5519. approved: true,
  5520. },
  5521. Review {
  5522. reviewer: Reviewer {
  5523. id: 1295100,
  5524. login: "davidtwco",
  5525. },
  5526. approved: true,
  5527. },
  5528. Review {
  5529. reviewer: Reviewer {
  5530. id: 1408859,
  5531. login: "Aaron1011",
  5532. },
  5533. approved: false,
  5534. },
  5535. Review {
  5536. reviewer: Reviewer {
  5537. id: 1606434,
  5538. login: "estebank",
  5539. },
  5540. approved: true,
  5541. },
  5542. Review {
  5543. reviewer: Reviewer {
  5544. id: 1825894,
  5545. login: "michaelwoerister",
  5546. },
  5547. approved: true,
  5548. },
  5549. Review {
  5550. reviewer: Reviewer {
  5551. id: 5751617,
  5552. login: "petrochenkov",
  5553. },
  5554. approved: true,
  5555. },
  5556. Review {
  5557. reviewer: Reviewer {
  5558. id: 20113453,
  5559. login: "matthewjasper",
  5560. },
  5561. approved: true,
  5562. },
  5563. Review {
  5564. reviewer: Reviewer {
  5565. id: 29864074,
  5566. login: "lcnr",
  5567. },
  5568. approved: true,
  5569. },
  5570. ],
  5571. issue: FCPIssue {
  5572. id: 1382166,
  5573. number: 3161,
  5574. fk_milestone: None,
  5575. fk_user: 77424,
  5576. fk_assignee: None,
  5577. open: true,
  5578. is_pull_request: true,
  5579. title: "[RFC2603] Extend `<const>` to include `str` and structural constants.",
  5580. body: "I'm not sure what the process for amending RFCs is, but here goes nothing:\r\n\r\nThis is one of the last pieces of the `v0` mangling, namely arbitrary constant values (for the full `const` generics feature). This has been tracked by https://github.com/rust-lang/rust/issues/61486, and there's some discussion there.\r\n\r\nThe main takeaway is that the mangling is *structural* (ADT-like tree with integer-like leaves), matching the structural equality that type-level constants are *required* to follow, for soundness reasons.\r\n\r\nAccompanying implementation PRs:\r\n* mangling: https://github.com/rust-lang/rust/pull/87194\r\n* demangling: https://github.com/alexcrichton/rustc-demangle/pull/55\r\n\r\nThe summary of the added forms is:\r\n* `e`: `str`, followed by bytes encoded as two hex nibbles per byte\r\n* `R`/`Q`: `&`/`&mut`, followed by the pointee value\r\n* `A...E`: `[...]`, containing any number of element values\r\n* `T...E`: `(...)`, containing any number of field values\r\n* `V`: named variant/`struct`, followed by the constructor path and one of:\r\n * `U`: unit variant/`struct` (e.g. `None`)\r\n * `T...E`: tuple variant/`struct` (e.g. `Some(...)`), containing any number of field values\r\n * `S...E`: struct-like variant/`struct` (e.g. `Foo { ... }`), containing any number of (disambiguated-)identifier-prefixed (i.e. named) field values\r\n\r\n<hr/>\r\n\r\nEven if there may be constants in the future not covered by these forms, we can rely on the nominal `V` form to encode all sorts of pseudo-paths (while waiting for demanglers to support dedicated manglings), such as these *hypothetical* examples:\r\n* `const::<SomeType>::h54723863eb99e89f` (hashed constant, masquerading as unit `struct`)\r\n* `core::mem::transmute::<usize, *mut T>(1)` (function call, masquerading as tuple `struct`)\r\n\r\n<hr/>\r\n\r\ncc @michaelwoerister",
  5581. locked: false,
  5582. closed_at: None,
  5583. created_at: Some(
  5584. "2021-08-10T18:33:26",
  5585. ),
  5586. updated_at: Some(
  5587. "2022-03-02T08:37:11",
  5588. ),
  5589. labels: [
  5590. "T-compiler",
  5591. "proposed-final-comment-period",
  5592. "disposition-merge",
  5593. ],
  5594. repository: "rust-lang/rfcs",
  5595. },
  5596. status_comment: StatusComment {
  5597. id: 896587191,
  5598. fk_issue: 1382166,
  5599. fk_user: 20760818,
  5600. body: "Team member @eddyb has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [ ] @Aaron1011\n* [x] @davidtwco\n* [x] @eddyb\n* [x] @estebank\n* [x] @lcnr\n* [x] @matthewjasper\n* [x] @michaelwoerister\n* [x] @nagisa\n* [x] @nikomatsakis\n* [x] @oli-obk\n* [x] @petrochenkov\n* [ ] @pnkfelix\n* [x] @wesleywiser\n\nConcerns:\n\n* field names are unnecessary (https://github.com/rust-lang/rfcs/pull/3161#issuecomment-896965971)\n* unit structs are unnecessary (https://github.com/rust-lang/rfcs/pull/3161#issuecomment-896965971)\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  5601. created_at: "2021-08-11T07:56:26",
  5602. updated_at: Some(
  5603. "2021-09-17T13:49:08",
  5604. ),
  5605. repository: "rust-lang/rfcs",
  5606. },
  5607. },
  5608. "rust-lang/rfcs:3216:Allow using `for<'a>` syntax when declaring closures": FullFCP {
  5609. fcp: FCP {
  5610. id: 2201,
  5611. fk_issue: 1515212,
  5612. fk_initiator: 155238,
  5613. fk_initiating_comment: 1064213230,
  5614. disposition: Some(
  5615. "merge",
  5616. ),
  5617. fk_bot_tracking_comment: 1064213248,
  5618. fcp_start: None,
  5619. fcp_closed: false,
  5620. },
  5621. reviews: [
  5622. Review {
  5623. reviewer: Reviewer {
  5624. id: 155238,
  5625. login: "nikomatsakis",
  5626. },
  5627. approved: true,
  5628. },
  5629. Review {
  5630. reviewer: Reviewer {
  5631. id: 162737,
  5632. login: "joshtriplett",
  5633. },
  5634. approved: true,
  5635. },
  5636. Review {
  5637. reviewer: Reviewer {
  5638. id: 173127,
  5639. login: "pnkfelix",
  5640. },
  5641. approved: true,
  5642. },
  5643. Review {
  5644. reviewer: Reviewer {
  5645. id: 5963049,
  5646. login: "cramertj",
  5647. },
  5648. approved: true,
  5649. },
  5650. Review {
  5651. reviewer: Reviewer {
  5652. id: 18526288,
  5653. login: "scottmcm",
  5654. },
  5655. approved: false,
  5656. },
  5657. ],
  5658. issue: FCPIssue {
  5659. id: 1515212,
  5660. number: 3216,
  5661. fk_milestone: None,
  5662. fk_user: 1408859,
  5663. fk_assignee: None,
  5664. open: true,
  5665. is_pull_request: true,
  5666. title: "Allow using `for<'a>` syntax when declaring closures",
  5667. body: "[Rendered](https://github.com/Aaron1011/rfcs/blob/higher-ranked-closure/text/0000-closure-lifetime-binder.md)\r\n\r\nAllow declaring closures using the `for<'a>` syntax:\r\n\r\n```rust\r\nlet closure = for<'a> |val: &'a u8| println!(\"Val: {:?}\", val);\r\nclosure(&25);\r\n```\r\n\r\nThis guarantees that the closure will use a higher-ranked lifetime, regardless of how the closure is used in the rest of the function.\r\n\r\nThis went through a pre-RFC at https://internals.rust-lang.org/t/pre-rfc-allow-for-a-syntax-with-closures-for-explicit-higher-ranked-lifetimes/15888. Thank you to everyone who provided feedback!",
  5668. locked: false,
  5669. closed_at: None,
  5670. created_at: Some(
  5671. "2022-01-06T21:27:47",
  5672. ),
  5673. updated_at: Some(
  5674. "2022-03-22T17:12:19",
  5675. ),
  5676. labels: [
  5677. "T-lang",
  5678. "proposed-final-comment-period",
  5679. "disposition-merge",
  5680. "I-lang-nominated",
  5681. ],
  5682. repository: "rust-lang/rfcs",
  5683. },
  5684. status_comment: StatusComment {
  5685. id: 1064213248,
  5686. fk_issue: 1515212,
  5687. fk_user: 20760818,
  5688. body: "Team member @nikomatsakis has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @cramertj\n* [x] @joshtriplett\n* [x] @nikomatsakis\n* [x] @pnkfelix\n* [ ] @scottmcm\n\nConcerns:\n\n* add-third-alternative (https://github.com/rust-lang/rfcs/pull/3216#issuecomment-1064214419)\n* grammatical-ambiguities (https://github.com/rust-lang/rfcs/pull/3216#issuecomment-1064215076)\n* ~~ultimate-syntax~~ resolved by https://github.com/rust-lang/rfcs/pull/3216#issuecomment-1068270337\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  5689. created_at: "2022-03-10T15:56:15",
  5690. updated_at: Some(
  5691. "2022-03-22T17:11:16",
  5692. ),
  5693. repository: "rust-lang/rfcs",
  5694. },
  5695. },
  5696. "rust-lang/rust:89780:Tracking Issue for poll.ready()?": FullFCP {
  5697. fcp: FCP {
  5698. id: 2193,
  5699. fk_issue: 1436141,
  5700. fk_initiator: 162737,
  5701. fk_initiating_comment: 1057495148,
  5702. disposition: Some(
  5703. "merge",
  5704. ),
  5705. fk_bot_tracking_comment: 1057495167,
  5706. fcp_start: None,
  5707. fcp_closed: false,
  5708. },
  5709. reviews: [
  5710. Review {
  5711. reviewer: Reviewer {
  5712. id: 162737,
  5713. login: "joshtriplett",
  5714. },
  5715. approved: true,
  5716. },
  5717. Review {
  5718. reviewer: Reviewer {
  5719. id: 278509,
  5720. login: "Amanieu",
  5721. },
  5722. approved: false,
  5723. },
  5724. Review {
  5725. reviewer: Reviewer {
  5726. id: 456674,
  5727. login: "BurntSushi",
  5728. },
  5729. approved: false,
  5730. },
  5731. Review {
  5732. reviewer: Reviewer {
  5733. id: 783247,
  5734. login: "m-ou-se",
  5735. },
  5736. approved: false,
  5737. },
  5738. Review {
  5739. reviewer: Reviewer {
  5740. id: 1940490,
  5741. login: "dtolnay",
  5742. },
  5743. approved: true,
  5744. },
  5745. Review {
  5746. reviewer: Reviewer {
  5747. id: 1993852,
  5748. login: "yaahc",
  5749. },
  5750. approved: false,
  5751. },
  5752. ],
  5753. issue: FCPIssue {
  5754. id: 1436141,
  5755. number: 89780,
  5756. fk_milestone: None,
  5757. fk_user: 1940490,
  5758. fk_assignee: None,
  5759. open: true,
  5760. is_pull_request: false,
  5761. title: "Tracking Issue for poll.ready()?",
  5762. body: "Feature gate: `#![feature(poll_ready)]`\r\n\r\nThis is a tracking issue for the `core::task::Poll::ready` method, which combined with `?` potentially supplants the `ready!` macro of #70922.\r\n\r\n```diff\r\n- let val = ready!(fut.poll(cx));\r\n+ let val = fut.poll(cx).ready()?;\r\n```\r\n\r\n### Public API\r\n\r\n```rust\r\n// core::task\r\n\r\nimpl<T> Poll<T> {\r\n pub fn ready(self) -> Ready<T>;\r\n}\r\n\r\npub struct Ready<T> {...}\r\n\r\nimpl<T> Try for Ready<T> {\r\n type Output = T;\r\n type Residual = Ready<Infallible>;\r\n ...\r\n}\r\n\r\nimpl<T> FromResidual for Ready<T> {...}\r\n\r\nimpl<T> FromResidual<Ready<Infallible>> for Poll<T> {...}\r\n\r\nimpl<T> Debug for Ready<T> {...}\r\n```\r\n\r\n### Steps / History\r\n\r\n<!--\r\nFor larger features, more steps might be involved.\r\nIf the feature is changed later, please add those PRs here as well.\r\n-->\r\n\r\n- [x] Implementation: #89651\r\n- [ ] Final comment period (FCP)\r\n- [ ] Stabilization PR\r\n\r\n### Unresolved Questions\r\n\r\n- ?",
  5763. locked: false,
  5764. closed_at: None,
  5765. created_at: Some(
  5766. "2021-10-11T19:15:35",
  5767. ),
  5768. updated_at: Some(
  5769. "2022-03-22T19:52:49",
  5770. ),
  5771. labels: [
  5772. "T-libs-api",
  5773. "proposed-final-comment-period",
  5774. "C-tracking-issue",
  5775. "disposition-merge",
  5776. "A-async-await",
  5777. "AsyncAwait-Triaged",
  5778. ],
  5779. repository: "rust-lang/rust",
  5780. },
  5781. status_comment: StatusComment {
  5782. id: 1057495167,
  5783. fk_issue: 1436141,
  5784. fk_user: 20760818,
  5785. body: "Team member @joshtriplett has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [ ] @Amanieu\n* [ ] @BurntSushi\n* [x] @dtolnay\n* [x] @joshtriplett\n* [ ] @m-ou-se\n* [ ] @yaahc\n\nConcerns:\n\n* try impl contradicts existing try impls (https://github.com/rust-lang/rust/issues/89780#issuecomment-1075570747)\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  5786. created_at: "2022-03-02T23:31:12",
  5787. updated_at: Some(
  5788. "2022-03-22T19:49:49",
  5789. ),
  5790. repository: "rust-lang/rust",
  5791. },
  5792. },
  5793. "rust-lang/rust:92980:Tracking Issue for const offset_from (const_ptr_offset_from)": FullFCP {
  5794. fcp: FCP {
  5795. id: 2204,
  5796. fk_issue: 1524479,
  5797. fk_initiator: 18526288,
  5798. fk_initiating_comment: 1065659256,
  5799. disposition: Some(
  5800. "merge",
  5801. ),
  5802. fk_bot_tracking_comment: 1065659273,
  5803. fcp_start: None,
  5804. fcp_closed: false,
  5805. },
  5806. reviews: [
  5807. Review {
  5808. reviewer: Reviewer {
  5809. id: 155238,
  5810. login: "nikomatsakis",
  5811. },
  5812. approved: false,
  5813. },
  5814. Review {
  5815. reviewer: Reviewer {
  5816. id: 162737,
  5817. login: "joshtriplett",
  5818. },
  5819. approved: true,
  5820. },
  5821. Review {
  5822. reviewer: Reviewer {
  5823. id: 173127,
  5824. login: "pnkfelix",
  5825. },
  5826. approved: false,
  5827. },
  5828. Review {
  5829. reviewer: Reviewer {
  5830. id: 278509,
  5831. login: "Amanieu",
  5832. },
  5833. approved: true,
  5834. },
  5835. Review {
  5836. reviewer: Reviewer {
  5837. id: 456674,
  5838. login: "BurntSushi",
  5839. },
  5840. approved: false,
  5841. },
  5842. Review {
  5843. reviewer: Reviewer {
  5844. id: 783247,
  5845. login: "m-ou-se",
  5846. },
  5847. approved: true,
  5848. },
  5849. Review {
  5850. reviewer: Reviewer {
  5851. id: 1940490,
  5852. login: "dtolnay",
  5853. },
  5854. approved: true,
  5855. },
  5856. Review {
  5857. reviewer: Reviewer {
  5858. id: 1993852,
  5859. login: "yaahc",
  5860. },
  5861. approved: false,
  5862. },
  5863. Review {
  5864. reviewer: Reviewer {
  5865. id: 5963049,
  5866. login: "cramertj",
  5867. },
  5868. approved: true,
  5869. },
  5870. Review {
  5871. reviewer: Reviewer {
  5872. id: 18526288,
  5873. login: "scottmcm",
  5874. },
  5875. approved: true,
  5876. },
  5877. ],
  5878. issue: FCPIssue {
  5879. id: 1524479,
  5880. number: 92980,
  5881. fk_milestone: None,
  5882. fk_user: 330628,
  5883. fk_assignee: None,
  5884. open: true,
  5885. is_pull_request: false,
  5886. title: "Tracking Issue for const offset_from (const_ptr_offset_from)",
  5887. body: "The feature gate for the issue is `#![feature(const_ptr_offset_from)]`.\r\n\r\nThis tracks `const`ness of the following function(s):\r\n```rust\r\nimpl<T> *const T {\r\n const unsafe fn offset_from(self, origin: *const T) -> isize\r\n}\r\n```\r\n\r\n### About tracking issues\r\n\r\nTracking issues are used to record the overall progress of implementation.\r\nThey are also used as hubs connecting to other relevant issues, e.g., bugs or open design questions.\r\nA tracking issue is however *not* meant for large scale discussion, questions, or bug reports about a feature.\r\nInstead, open a dedicated issue for the specific matter and add the relevant feature gate label.\r\n\r\n### Steps\r\n<!--\r\nInclude each step required to complete the feature. Typically this is a PR\r\nimplementing a feature, followed by a PR that stabilises the feature. However\r\nfor larger features an implementation could be broken up into multiple PRs.\r\n-->\r\n\r\n- [x] Implementation\r\n- Stabilization report: https://github.com/rust-lang/rust/issues/92980#issuecomment-1065644848\r\n- [ ] Stabilization PR ([see instructions on rustc-dev-guide][stabilization-guide])\r\n\r\n[stabilization-guide]: https://rustc-dev-guide.rust-lang.org/stabilization_guide.html#stabilization-pr\r\n[doc-guide]: https://rustc-dev-guide.rust-lang.org/stabilization_guide.html#documentation-prs\r\n\r\n### Unresolved Questions\r\n<!--\r\nInclude any open questions that need to be answered before the feature can be\r\nstabilised.\r\n-->\r\n\r\n- Should we allow calling this function in case both pointers point to the same allocation (in terms of their provenance) but are not both in-bounds? Cc https://github.com/rust-lang/rust/issues/92512 <br> → this can be resolved post-stabilization since it is backwards compatible\r\n\r\n### Implementation history\r\n\r\n<!--\r\nInclude a list of all the PRs that were involved in implementing the feature.\r\n-->\r\n- see https://github.com/rust-lang/rust/issues/41079\r\n- https://github.com/rust-lang/rust/pull/94827",
  5888. locked: false,
  5889. closed_at: None,
  5890. created_at: Some(
  5891. "2022-01-16T19:22:52",
  5892. ),
  5893. updated_at: Some(
  5894. "2022-03-22T17:13:42",
  5895. ),
  5896. labels: [
  5897. "T-lang",
  5898. "T-libs-api",
  5899. "proposed-final-comment-period",
  5900. "C-tracking-issue",
  5901. "disposition-merge",
  5902. ],
  5903. repository: "rust-lang/rust",
  5904. },
  5905. status_comment: StatusComment {
  5906. id: 1065659273,
  5907. fk_issue: 1524479,
  5908. fk_user: 20760818,
  5909. body: "Team member @scottmcm has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Amanieu\n* [ ] @BurntSushi\n* [x] @cramertj\n* [x] @dtolnay\n* [x] @joshtriplett\n* [x] @m-ou-se\n* [ ] @nikomatsakis\n* [ ] @pnkfelix\n* [x] @scottmcm\n* [ ] @yaahc\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  5910. created_at: "2022-03-11T23:46:56",
  5911. updated_at: Some(
  5912. "2022-03-22T17:13:42",
  5913. ),
  5914. repository: "rust-lang/rust",
  5915. },
  5916. },
  5917. "rust-lang/stdarch:1285:Add the rdm target feature to the sqrdmlsh intrinsic.": FullFCP {
  5918. fcp: FCP {
  5919. id: 2187,
  5920. fk_issue: 1573465,
  5921. fk_initiator: 278509,
  5922. fk_initiating_comment: 1054448088,
  5923. disposition: Some(
  5924. "merge",
  5925. ),
  5926. fk_bot_tracking_comment: 1054497120,
  5927. fcp_start: None,
  5928. fcp_closed: false,
  5929. },
  5930. reviews: [
  5931. Review {
  5932. reviewer: Reviewer {
  5933. id: 162737,
  5934. login: "joshtriplett",
  5935. },
  5936. approved: false,
  5937. },
  5938. Review {
  5939. reviewer: Reviewer {
  5940. id: 278509,
  5941. login: "Amanieu",
  5942. },
  5943. approved: true,
  5944. },
  5945. Review {
  5946. reviewer: Reviewer {
  5947. id: 456674,
  5948. login: "BurntSushi",
  5949. },
  5950. approved: false,
  5951. },
  5952. Review {
  5953. reviewer: Reviewer {
  5954. id: 783247,
  5955. login: "m-ou-se",
  5956. },
  5957. approved: false,
  5958. },
  5959. Review {
  5960. reviewer: Reviewer {
  5961. id: 1940490,
  5962. login: "dtolnay",
  5963. },
  5964. approved: false,
  5965. },
  5966. Review {
  5967. reviewer: Reviewer {
  5968. id: 1993852,
  5969. login: "yaahc",
  5970. },
  5971. approved: false,
  5972. },
  5973. ],
  5974. issue: FCPIssue {
  5975. id: 1573465,
  5976. number: 1285,
  5977. fk_milestone: None,
  5978. fk_user: 29557119,
  5979. fk_assignee: Some(
  5980. 278509,
  5981. ),
  5982. open: true,
  5983. is_pull_request: true,
  5984. title: "Add the rdm target feature to the sqrdmlsh intrinsic.",
  5985. body: "I noticed the `sqrdmlsh` intrinsic was asserting for the wrong instruction and didn't have the rdm target feature.\r\n\r\nThis has removed the stabilization of this intrinsic, I'm not sure what the policy is here as the other rdm intrinsics haven't yet been stabilized.\r\n",
  5986. locked: false,
  5987. closed_at: None,
  5988. created_at: Some(
  5989. "2022-02-28T15:17:41",
  5990. ),
  5991. updated_at: Some(
  5992. "2022-03-13T11:21:58",
  5993. ),
  5994. labels: [
  5995. "T-libs-api",
  5996. ],
  5997. repository: "rust-lang/stdarch",
  5998. },
  5999. status_comment: StatusComment {
  6000. id: 1054497120,
  6001. fk_issue: 1573465,
  6002. fk_user: 20760818,
  6003. body: "Team member @Amanieu has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Amanieu\n* [ ] @BurntSushi\n* [ ] @dtolnay\n* [ ] @joshtriplett\n* [ ] @m-ou-se\n* [ ] @yaahc\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  6004. created_at: "2022-02-28T17:33:48",
  6005. updated_at: Some(
  6006. "2022-02-28T17:33:49",
  6007. ),
  6008. repository: "rust-lang/stdarch",
  6009. },
  6010. },
  6011. "rust-lang/rust:71941:Tracking Issue for `NonNull<[T]>::slice_from_raw_parts`": FullFCP {
  6012. fcp: FCP {
  6013. id: 2205,
  6014. fk_issue: 920007,
  6015. fk_initiator: 783247,
  6016. fk_initiating_comment: 1065939508,
  6017. disposition: Some(
  6018. "merge",
  6019. ),
  6020. fk_bot_tracking_comment: 1065939514,
  6021. fcp_start: None,
  6022. fcp_closed: false,
  6023. },
  6024. reviews: [
  6025. Review {
  6026. reviewer: Reviewer {
  6027. id: 162737,
  6028. login: "joshtriplett",
  6029. },
  6030. approved: false,
  6031. },
  6032. Review {
  6033. reviewer: Reviewer {
  6034. id: 278509,
  6035. login: "Amanieu",
  6036. },
  6037. approved: true,
  6038. },
  6039. Review {
  6040. reviewer: Reviewer {
  6041. id: 456674,
  6042. login: "BurntSushi",
  6043. },
  6044. approved: false,
  6045. },
  6046. Review {
  6047. reviewer: Reviewer {
  6048. id: 783247,
  6049. login: "m-ou-se",
  6050. },
  6051. approved: true,
  6052. },
  6053. Review {
  6054. reviewer: Reviewer {
  6055. id: 1940490,
  6056. login: "dtolnay",
  6057. },
  6058. approved: true,
  6059. },
  6060. Review {
  6061. reviewer: Reviewer {
  6062. id: 1993852,
  6063. login: "yaahc",
  6064. },
  6065. approved: false,
  6066. },
  6067. ],
  6068. issue: FCPIssue {
  6069. id: 920007,
  6070. number: 71941,
  6071. fk_milestone: None,
  6072. fk_user: 291359,
  6073. fk_assignee: None,
  6074. open: true,
  6075. is_pull_request: false,
  6076. title: "Tracking Issue for `NonNull<[T]>::slice_from_raw_parts`",
  6077. body: "This is a tracking issue for the `NonNull<[T]>::slice_from_raw_parts` method proposed in PR https://github.com/rust-lang/rust/pull/71940.\r\nThe feature gates for the issue are `#![feature(nonnull_slice_from_raw_parts)]`, and `#![feature(const_nonnull_slice_from_raw_parts)]` for using as a `const fn`.\r\n\r\n### API\r\n\r\n```rust\r\nimpl<T> NonNull<[T]> {\r\n pub const fn slice_from_raw_parts(data: NonNull<T>, len: usize) -> Self;\r\n}\r\n```\r\n\r\nDocs: https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.slice_from_raw_parts\r\n\r\n### Steps\r\n\r\n- [x] Implementation: https://github.com/rust-lang/rust/pull/71940\r\n- [ ] FCP: https://github.com/rust-lang/rust/issues/71941#issuecomment-1065939514\r\n- [ ] Stabilization PR\r\n",
  6078. locked: false,
  6079. closed_at: None,
  6080. created_at: Some(
  6081. "2020-05-06T05:55:51",
  6082. ),
  6083. updated_at: Some(
  6084. "2022-03-16T21:04:47",
  6085. ),
  6086. labels: [
  6087. "T-libs-api",
  6088. "B-unstable",
  6089. "proposed-final-comment-period",
  6090. "C-tracking-issue",
  6091. "disposition-merge",
  6092. "A-slice",
  6093. "Libs-Tracked",
  6094. "Libs-Small",
  6095. "A-raw-pointers",
  6096. ],
  6097. repository: "rust-lang/rust",
  6098. },
  6099. status_comment: StatusComment {
  6100. id: 1065939514,
  6101. fk_issue: 920007,
  6102. fk_user: 20760818,
  6103. body: "Team member @m-ou-se has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Amanieu\n* [ ] @BurntSushi\n* [x] @dtolnay\n* [ ] @joshtriplett\n* [x] @m-ou-se\n* [ ] @yaahc\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  6104. created_at: "2022-03-12T18:42:00",
  6105. updated_at: Some(
  6106. "2022-03-16T21:04:47",
  6107. ),
  6108. repository: "rust-lang/rust",
  6109. },
  6110. },
  6111. "rust-lang/rust:87517:Tracking Issue for RFC 3107: derive_default_enum": FullFCP {
  6112. fcp: FCP {
  6113. id: 2209,
  6114. fk_issue: 1370510,
  6115. fk_initiator: 162737,
  6116. fk_initiating_comment: 1066980299,
  6117. disposition: Some(
  6118. "merge",
  6119. ),
  6120. fk_bot_tracking_comment: 1066980319,
  6121. fcp_start: None,
  6122. fcp_closed: false,
  6123. },
  6124. reviews: [
  6125. Review {
  6126. reviewer: Reviewer {
  6127. id: 162737,
  6128. login: "joshtriplett",
  6129. },
  6130. approved: true,
  6131. },
  6132. Review {
  6133. reviewer: Reviewer {
  6134. id: 278509,
  6135. login: "Amanieu",
  6136. },
  6137. approved: true,
  6138. },
  6139. Review {
  6140. reviewer: Reviewer {
  6141. id: 456674,
  6142. login: "BurntSushi",
  6143. },
  6144. approved: false,
  6145. },
  6146. Review {
  6147. reviewer: Reviewer {
  6148. id: 783247,
  6149. login: "m-ou-se",
  6150. },
  6151. approved: false,
  6152. },
  6153. Review {
  6154. reviewer: Reviewer {
  6155. id: 1940490,
  6156. login: "dtolnay",
  6157. },
  6158. approved: false,
  6159. },
  6160. Review {
  6161. reviewer: Reviewer {
  6162. id: 1993852,
  6163. login: "yaahc",
  6164. },
  6165. approved: true,
  6166. },
  6167. ],
  6168. issue: FCPIssue {
  6169. id: 1370510,
  6170. number: 87517,
  6171. fk_milestone: None,
  6172. fk_user: 173127,
  6173. fk_assignee: None,
  6174. open: true,
  6175. is_pull_request: false,
  6176. title: "Tracking Issue for RFC 3107: derive_default_enum",
  6177. body: "<!--\r\nNOTE: For library features, please use the \"Library Tracking Issue\" template instead.\r\n\r\nThank you for creating a tracking issue! 📜 Tracking issues are for tracking a\r\nfeature from implementation to stabilisation. Make sure to include the relevant\r\nRFC for the feature if it has one. Otherwise provide a short summary of the\r\nfeature and link any relevant PRs or issues, and remove any sections that are\r\nnot relevant to the feature.\r\n\r\nRemember to add team labels to the tracking issue.\r\nFor a language team feature, this would e.g., be `T-lang`.\r\nSuch a feature should also be labeled with e.g., `F-my_feature`.\r\nThis label is used to associate issues (e.g., bugs and design questions) to the feature.\r\n-->\r\n\r\nThis is a tracking issue for the RFC 3107: \"`#[derive(Default)]` on enums with a `#[default]` attribute\" (rust-lang/rfcs#3107).\r\nThe feature gate for the issue is `#![feature(derive_default_enum)]`.\r\n\r\n### About tracking issues\r\n\r\nTracking issues are used to record the overall progress of implementation.\r\nThey are also used as hubs connecting to other relevant issues, e.g., bugs or open design questions.\r\nA tracking issue is however *not* meant for large scale discussion, questions, or bug reports about a feature.\r\nInstead, open a dedicated issue for the specific matter and add the relevant feature gate label.\r\n\r\n### Steps\r\n<!--\r\nInclude each step required to complete the feature. Typically this is a PR\r\nimplementing a feature, followed by a PR that stabilises the feature. However\r\nfor larger features an implementation could be broken up into multiple PRs.\r\n-->\r\n\r\n- [x] Implement the RFC (cc @rust-lang/compiler -- can anyone write up mentoring\r\n instructions?)\r\n- [ ] Adjust documentation ([see instructions on rustc-dev-guide][doc-guide])\r\n- [ ] Stabilization PR ([see instructions on rustc-dev-guide][stabilization-guide])\r\n\r\n[stabilization-guide]: https://rustc-dev-guide.rust-lang.org/stabilization_guide.html#stabilization-pr\r\n[doc-guide]: https://rustc-dev-guide.rust-lang.org/stabilization_guide.html#documentation-prs\r\n\r\n### Unresolved Questions\r\n<!--\r\nInclude any open questions that need to be answered before the feature can be\r\nstabilised.\r\n-->\r\n\r\nNone so far\r\n\r\n### Implementation history\r\n\r\n<!--\r\nInclude a list of all the PRs that were involved in implementing the feature.\r\n-->\r\n",
  6178. locked: false,
  6179. closed_at: None,
  6180. created_at: Some(
  6181. "2021-07-27T16:15:22",
  6182. ),
  6183. updated_at: Some(
  6184. "2022-03-19T11:34:23",
  6185. ),
  6186. labels: [
  6187. "T-libs-api",
  6188. "proposed-final-comment-period",
  6189. "C-tracking-issue",
  6190. "disposition-merge",
  6191. "S-tracking-ready-to-stabilize",
  6192. ],
  6193. repository: "rust-lang/rust",
  6194. },
  6195. status_comment: StatusComment {
  6196. id: 1066980319,
  6197. fk_issue: 1370510,
  6198. fk_user: 20760818,
  6199. body: "Team member @joshtriplett has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Amanieu\n* [ ] @BurntSushi\n* [ ] @dtolnay\n* [x] @joshtriplett\n* [ ] @m-ou-se\n* [x] @yaahc\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  6200. created_at: "2022-03-14T15:50:13",
  6201. updated_at: Some(
  6202. "2022-03-19T11:34:23",
  6203. ),
  6204. repository: "rust-lang/rust",
  6205. },
  6206. },
  6207. "rust-lang/rust:82223:Tracking Issue for `Result::into_ok_or_err` / `feature(result_into_ok_or_err)`": FullFCP {
  6208. fcp: FCP {
  6209. id: 2207,
  6210. fk_issue: 1215172,
  6211. fk_initiator: 783247,
  6212. fk_initiating_comment: 1065947789,
  6213. disposition: Some(
  6214. "merge",
  6215. ),
  6216. fk_bot_tracking_comment: 1065947793,
  6217. fcp_start: None,
  6218. fcp_closed: false,
  6219. },
  6220. reviews: [
  6221. Review {
  6222. reviewer: Reviewer {
  6223. id: 162737,
  6224. login: "joshtriplett",
  6225. },
  6226. approved: false,
  6227. },
  6228. Review {
  6229. reviewer: Reviewer {
  6230. id: 278509,
  6231. login: "Amanieu",
  6232. },
  6233. approved: true,
  6234. },
  6235. Review {
  6236. reviewer: Reviewer {
  6237. id: 456674,
  6238. login: "BurntSushi",
  6239. },
  6240. approved: false,
  6241. },
  6242. Review {
  6243. reviewer: Reviewer {
  6244. id: 783247,
  6245. login: "m-ou-se",
  6246. },
  6247. approved: true,
  6248. },
  6249. Review {
  6250. reviewer: Reviewer {
  6251. id: 1940490,
  6252. login: "dtolnay",
  6253. },
  6254. approved: false,
  6255. },
  6256. Review {
  6257. reviewer: Reviewer {
  6258. id: 1993852,
  6259. login: "yaahc",
  6260. },
  6261. approved: false,
  6262. },
  6263. ],
  6264. issue: FCPIssue {
  6265. id: 1215172,
  6266. number: 82223,
  6267. fk_milestone: None,
  6268. fk_user: 860665,
  6269. fk_assignee: None,
  6270. open: true,
  6271. is_pull_request: false,
  6272. title: "Tracking Issue for `Result::into_ok_or_err` / `feature(result_into_ok_or_err)`",
  6273. body: "Feature gate: `#![feature(result_into_ok_or_err)]`\r\n\r\nThis is a tracking issue for `Result::into_ok_or_err`, a method to get the `T` out of `Result<T, T>` regardless of which variant is active.\r\n\r\n### Public API\r\n\r\n```rust\r\nimpl<T> Result<T, T> {\r\n pub const fn into_ok_or_err(self) -> T;\r\n}\r\n```\r\n\r\n### Steps / History\r\n\r\n- [x] Implementation: #80572\r\n- [ ] Final commenting period (FCP)\r\n- [ ] Stabilization PR\r\n\r\n### Unresolved Questions\r\n\r\n- [ ] ~~What color should the bikeshed be~~ What name should it have?\r\n Some options that have been suggested:\r\n - `Result::into_ok_or_err`\r\n - `Result::ok_or_err`\r\n - `Result::into_either`\r\n - `Result::into_inner`\r\n - `Result::either_value`\r\n - `Result::unwrap_either`\r\n - Several more suggested options are listed in the issue.\r\n - [ ] Do we want a reference version as well, as https://github.com/rust-lang/rust/pull/79315 proposed?",
  6274. locked: false,
  6275. closed_at: None,
  6276. created_at: Some(
  6277. "2021-02-17T17:03:21",
  6278. ),
  6279. updated_at: Some(
  6280. "2022-03-16T21:03:25",
  6281. ),
  6282. labels: [
  6283. "T-libs-api",
  6284. "proposed-final-comment-period",
  6285. "C-tracking-issue",
  6286. "disposition-merge",
  6287. ],
  6288. repository: "rust-lang/rust",
  6289. },
  6290. status_comment: StatusComment {
  6291. id: 1065947793,
  6292. fk_issue: 1215172,
  6293. fk_user: 20760818,
  6294. body: "Team member @m-ou-se has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Amanieu\n* [ ] @BurntSushi\n* [ ] @dtolnay\n* [ ] @joshtriplett\n* [x] @m-ou-se\n* [ ] @yaahc\n\nConcerns:\n\n* rather not (https://github.com/rust-lang/rust/issues/82223#issuecomment-1065985610)\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  6295. created_at: "2022-03-12T19:24:40",
  6296. updated_at: Some(
  6297. "2022-03-16T21:03:25",
  6298. ),
  6299. repository: "rust-lang/rust",
  6300. },
  6301. },
  6302. "rust-lang/rust:92939:Tracking Issue for windows_process_extensions_raw_arg": FullFCP {
  6303. fcp: FCP {
  6304. id: 2199,
  6305. fk_issue: 1523566,
  6306. fk_initiator: 783247,
  6307. fk_initiating_comment: 1062923482,
  6308. disposition: Some(
  6309. "merge",
  6310. ),
  6311. fk_bot_tracking_comment: 1062923488,
  6312. fcp_start: None,
  6313. fcp_closed: false,
  6314. },
  6315. reviews: [
  6316. Review {
  6317. reviewer: Reviewer {
  6318. id: 162737,
  6319. login: "joshtriplett",
  6320. },
  6321. approved: false,
  6322. },
  6323. Review {
  6324. reviewer: Reviewer {
  6325. id: 278509,
  6326. login: "Amanieu",
  6327. },
  6328. approved: true,
  6329. },
  6330. Review {
  6331. reviewer: Reviewer {
  6332. id: 456674,
  6333. login: "BurntSushi",
  6334. },
  6335. approved: false,
  6336. },
  6337. Review {
  6338. reviewer: Reviewer {
  6339. id: 783247,
  6340. login: "m-ou-se",
  6341. },
  6342. approved: true,
  6343. },
  6344. Review {
  6345. reviewer: Reviewer {
  6346. id: 1940490,
  6347. login: "dtolnay",
  6348. },
  6349. approved: true,
  6350. },
  6351. Review {
  6352. reviewer: Reviewer {
  6353. id: 1993852,
  6354. login: "yaahc",
  6355. },
  6356. approved: false,
  6357. },
  6358. ],
  6359. issue: FCPIssue {
  6360. id: 1523566,
  6361. number: 92939,
  6362. fk_milestone: None,
  6363. fk_user: 6182002,
  6364. fk_assignee: None,
  6365. open: true,
  6366. is_pull_request: false,
  6367. title: "Tracking Issue for windows_process_extensions_raw_arg",
  6368. body: "<!--\r\nThank you for creating a tracking issue!\r\n\r\nTracking issues are for tracking a feature from implementation to stabilization.\r\n\r\nMake sure to include the relevant RFC for the feature if it has one.\r\n\r\nIf the new feature is small, it may be fine to skip the RFC process. In that\r\ncase, you can use use `issue = \"none\"` in your initial implementation PR. The\r\nreviewer will ask you to open a tracking issue if they agree your feature can be\r\nadded without an RFC.\r\n-->\r\n\r\nFeature gate: `#![feature(windows_process_extensions_raw_arg)]`\r\n\r\nThis is a tracking issue for the raw_arg extension to `std::process::Command` on Windows.\r\n\r\nWindows programs on the lowest API layers actually aren't required to accept arguments as an array of strings.\r\nIn fact the illusion that they do accept arguments as an array of strings is mostly maintained by one function. [CommandLineToArgvW](https://docs.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-commandlinetoargvw). Not all programs use that function to parse arguments. Some of the programs that don't do this are really important, like `cmd.exe`. These programs instead read their argument as one large string, which makes them incompatible with how `std::process::Command::arg` passes the arguments. `std::process::Command::arg` assumes the program will parse the string using `CommandLineToArgvW`. Most of the time this is a reasonable assumption to make.\r\n\r\nSolution: `raw_arg`. Strings passed via `raw_arg` are sent straight through with no alteration, save for inserting spaces inbetween them. Raw args are not quoted, escaped, or really anything complicated like that. This makes them compatible with Windows executable files which don't use [CommandLineToArgvW](https://docs.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-commandlinetoargvw).\r\n\r\n### Public API\r\n\r\n<!--\r\nFor most library features, it'd be useful to include a summarized version of the public API.\r\n(E.g. just the public function signatures without their doc comments or implementation.)\r\n-->\r\n\r\n```rust\r\nuse std::process::Command;\r\n\r\n// This will print\r\n// \"Hello World!\"\r\n// with the quotes, which is not possible with std::process::Command and `cmd.exe`\r\n// with the current `.arg()` method.\r\nlet cmd = Command::new(\"cmd.exe\").raw_arg(\"/C echo \\\"Hello World!\\\"\");\r\n\r\n// You can also chain this\r\nCommand::new(\"cmd.exe\")\r\n .raw_arg(\"/C\")\r\n .raw_arg(\"echo\")\r\n .raw_arg(\"\\\"Hello World!\\\"\")\r\n```\r\n\r\n### Steps / History\r\n\r\n<!--\r\nFor larger features, more steps might be involved.\r\nIf the feature is changed later, please add those PRs here as well.\r\n-->\r\n\r\n- [x] Implementation: #85832\r\n- [ ] Final comment period (FCP)\r\n- [ ] Stabilization PR #92942\r\n\r\n<!--\r\nOnce the feature has gone through a few release cycles and there are no\r\nunresolved questions left, the feature might be ready for stabilization.\r\n\r\nIf this feature didn't go through the RFC process, a final comment period\r\n(FCP) is always needed before stabilization. This works as follows:\r\n\r\nA library API team member can kick off the stabilization process, at which point\r\nthe rfcbot will ask all the team members to verify they agree with\r\nstabilization. Once enough members agree and there are no concerns, the final\r\ncomment period begins: this issue will be marked as such and will be listed\r\nin the next This Week in Rust newsletter. If no blocking concerns are raised in\r\nthat period of 10 days, a stabilzation PR can be opened by anyone.\r\n-->\r\n\r\n### Unresolved Questions\r\n\r\n<!--\r\nInclude any open questions that need to be answered before the feature can be\r\nstabilised. If multiple (unrelated) big questions come up, it can be a good idea\r\nto open a separate issue for each, to make it easier to keep track of the\r\ndiscussions.\r\n\r\nIt's useful to link any relevant discussions and conclusions (whether on GitHub,\r\nZulip, or the internals forum) here.\r\n-->\r\n\r\n- None yet.\r\n",
  6369. locked: false,
  6370. closed_at: None,
  6371. created_at: Some(
  6372. "2022-01-15T18:35:41",
  6373. ),
  6374. updated_at: Some(
  6375. "2022-03-16T21:06:45",
  6376. ),
  6377. labels: [
  6378. "T-libs-api",
  6379. "proposed-final-comment-period",
  6380. "C-tracking-issue",
  6381. "disposition-merge",
  6382. ],
  6383. repository: "rust-lang/rust",
  6384. },
  6385. status_comment: StatusComment {
  6386. id: 1062923488,
  6387. fk_issue: 1523566,
  6388. fk_user: 20760818,
  6389. body: "Team member @m-ou-se has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Amanieu\n* [ ] @BurntSushi\n* [x] @dtolnay\n* [ ] @joshtriplett\n* [x] @m-ou-se\n* [ ] @yaahc\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  6390. created_at: "2022-03-09T13:30:27",
  6391. updated_at: Some(
  6392. "2022-03-16T21:06:45",
  6393. ),
  6394. repository: "rust-lang/rust",
  6395. },
  6396. },
  6397. "rust-lang/rust:89238:deprecate f{32,64}::DIGITS": FullFCP {
  6398. fcp: FCP {
  6399. id: 2030,
  6400. fk_issue: 1422097,
  6401. fk_initiator: 783247,
  6402. fk_initiating_comment: 927177702,
  6403. disposition: Some(
  6404. "merge",
  6405. ),
  6406. fk_bot_tracking_comment: 927177703,
  6407. fcp_start: None,
  6408. fcp_closed: false,
  6409. },
  6410. reviews: [
  6411. Review {
  6412. reviewer: Reviewer {
  6413. id: 162737,
  6414. login: "joshtriplett",
  6415. },
  6416. approved: true,
  6417. },
  6418. Review {
  6419. reviewer: Reviewer {
  6420. id: 278509,
  6421. login: "Amanieu",
  6422. },
  6423. approved: true,
  6424. },
  6425. Review {
  6426. reviewer: Reviewer {
  6427. id: 456674,
  6428. login: "BurntSushi",
  6429. },
  6430. approved: false,
  6431. },
  6432. Review {
  6433. reviewer: Reviewer {
  6434. id: 783247,
  6435. login: "m-ou-se",
  6436. },
  6437. approved: true,
  6438. },
  6439. Review {
  6440. reviewer: Reviewer {
  6441. id: 1940490,
  6442. login: "dtolnay",
  6443. },
  6444. approved: true,
  6445. },
  6446. Review {
  6447. reviewer: Reviewer {
  6448. id: 1993852,
  6449. login: "yaahc",
  6450. },
  6451. approved: true,
  6452. },
  6453. ],
  6454. issue: FCPIssue {
  6455. id: 1422097,
  6456. number: 89238,
  6457. fk_milestone: None,
  6458. fk_user: 46493976,
  6459. fk_assignee: Some(
  6460. 783247,
  6461. ),
  6462. open: true,
  6463. is_pull_request: true,
  6464. title: "deprecate f{32,64}::DIGITS",
  6465. body: "These constants are misleading: the number of significant digits\r\nvaries for each value that these floating point numbers may encode\r\nbut some programmers are taking them directly as an upper bound.\r\nThis is wrong and is leading to programmers creating applications\r\nthat directly mislead other users about their meaning, having\r\na negative ecosystem-wide impact on mathematical accuracy.\r\n\r\nTo contain the damage, deprecate them without replacement.\r\nIt is hoped this will force programmers to reevaluate their use.\r\n\r\nCloses https://github.com/rust-lang/rust/issues/89106.\r\nThis problem may seem trivial but instructions to alter valid float values being generated by an otherwise highly-regarded source (Clippy) is a bad result. While a PR is open against rust-clippy to fix this behavior, this pattern may have arisen in non-indexed code, even though it seems to be uncommon. As the constants don't seem to be greatly used in practice, while the damage they can do if misused is high, it seems reasonable to take this path.",
  6466. locked: false,
  6467. closed_at: None,
  6468. created_at: Some(
  6469. "2021-09-25T00:09:00",
  6470. ),
  6471. updated_at: Some(
  6472. "2022-02-04T20:05:39",
  6473. ),
  6474. labels: [
  6475. "T-libs-api",
  6476. "S-waiting-on-author",
  6477. "proposed-final-comment-period",
  6478. "disposition-merge",
  6479. "needs-fcp",
  6480. "A-floating-point",
  6481. ],
  6482. repository: "rust-lang/rust",
  6483. },
  6484. status_comment: StatusComment {
  6485. id: 927177703,
  6486. fk_issue: 1422097,
  6487. fk_user: 20760818,
  6488. body: "Team member @m-ou-se has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Amanieu\n* [ ] @BurntSushi\n* [x] @dtolnay\n* [x] @joshtriplett\n* [x] @m-ou-se\n* [x] @yaahc\n\nConcerns:\n\n* detailed explanation (https://github.com/rust-lang/rust/pull/89238#issuecomment-929701400)\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  6489. created_at: "2021-09-25T20:17:22",
  6490. updated_at: Some(
  6491. "2022-01-19T20:35:25",
  6492. ),
  6493. repository: "rust-lang/rust",
  6494. },
  6495. },
  6496. }
  6497. issue_decorator: IssueDecorator {
  6498. number: 3191,
  6499. title: "New Rust attribute to support embedding debugger visualizers",
  6500. html_url: "https://github.com/rust-lang/rfcs/pull/3191",
  6501. repo_name: "rfcs",
  6502. labels: "T-lang, T-compiler, proposed-final-comment-period, disposition-merge",
  6503. assignees: "",
  6504. updated_at: "about 0 days ago",
  6505. }
  6506. issue_decorator.html_url: "https://github.com/rust-lang/rfcs/pull/3191"
  6507. issue_decorator: IssueDecorator {
  6508. number: 3216,
  6509. title: "Allow using `for<'a>` syntax when declaring closures",
  6510. html_url: "https://github.com/rust-lang/rfcs/pull/3216",
  6511. repo_name: "rfcs",
  6512. labels: "T-lang, proposed-final-comment-period, disposition-merge, I-lang-nominated",
  6513. assignees: "",
  6514. updated_at: "about 0 days ago",
  6515. }
  6516. issue_decorator.html_url: "https://github.com/rust-lang/rfcs/pull/3216"
  6517. issue_decorator: IssueDecorator {
  6518. number: 92980,
  6519. title: "Tracking Issue for const offset_from (const_ptr_offset_from)",
  6520. html_url: "https://github.com/rust-lang/rust/issues/92980",
  6521. repo_name: "rust",
  6522. labels: "T-lang, T-libs-api, proposed-final-comment-period, C-tracking-issue, disposition-merge",
  6523. assignees: "",
  6524. updated_at: "about 0 days ago",
  6525. }
  6526. issue_decorator.html_url: "https://github.com/rust-lang/rust/issues/92980"
  6527. issue_decorator: IssueDecorator {
  6528. number: 93628,
  6529. title: "Stabilize `let else`",
  6530. html_url: "https://github.com/rust-lang/rust/pull/93628",
  6531. repo_name: "rust",
  6532. labels: "T-rustdoc, T-lang, relnotes, S-waiting-on-author, proposed-final-comment-period, disposition-merge, needs-fcp, S-waiting-on-fcp",
  6533. assignees: "jackh726",
  6534. updated_at: "about 0 days ago",
  6535. }
  6536. issue_decorator.html_url: "https://github.com/rust-lang/rust/pull/93628"
  6537. issue_decorator: IssueDecorator {
  6538. number: 94927,
  6539. title: "Stabilize `let_chains` in Rust 1.62.0",
  6540. html_url: "https://github.com/rust-lang/rust/pull/94927",
  6541. repo_name: "rust",
  6542. labels: "T-lang, S-waiting-on-review, proposed-final-comment-period, disposition-merge, I-lang-nominated",
  6543. assignees: "estebank",
  6544. updated_at: "about 0 days ago",
  6545. }
  6546. issue_decorator.html_url: "https://github.com/rust-lang/rust/pull/94927"
  6547. self.name: lang_agenda
  6548. context: Context {
  6549. data: {
  6550. "finished_fcp": Array([
  6551. Object({
  6552. "assignees": String(
  6553. "",
  6554. ),
  6555. "html_url": String(
  6556. "https://github.com/rust-lang/rust/issues/32838",
  6557. ),
  6558. "labels": String(
  6559. "B-RFC-approved, T-lang, T-libs-api, B-unstable, C-tracking-issue, disposition-merge, finished-final-comment-period, Libs-Tracked, S-tracking-needs-summary",
  6560. ),
  6561. "number": Number(
  6562. 32838,
  6563. ),
  6564. "repo_name": String(
  6565. "rust",
  6566. ),
  6567. "title": String(
  6568. "Allocator traits and std::heap",
  6569. ),
  6570. "updated_at": String(
  6571. "2 months ago",
  6572. ),
  6573. }),
  6574. Object({
  6575. "assignees": String(
  6576. "arielb1",
  6577. ),
  6578. "html_url": String(
  6579. "https://github.com/rust-lang/rust/issues/35121",
  6580. ),
  6581. "labels": String(
  6582. "A-typesystem, B-RFC-approved, T-lang, T-libs-api, B-unstable, C-tracking-issue, finished-final-comment-period, F-never_type, Libs-Tracked, S-tracking-design-concerns",
  6583. ),
  6584. "number": Number(
  6585. 35121,
  6586. ),
  6587. "repo_name": String(
  6588. "rust",
  6589. ),
  6590. "title": String(
  6591. "Tracking issue for promoting `!` to a type (RFC 1216)",
  6592. ),
  6593. "updated_at": String(
  6594. "about 4 days ago",
  6595. ),
  6596. }),
  6597. Object({
  6598. "assignees": String(
  6599. "",
  6600. ),
  6601. "html_url": String(
  6602. "https://github.com/rust-lang/rust/issues/43234",
  6603. ),
  6604. "labels": String(
  6605. "A-lifetimes, metabug, T-lang, T-compiler, A-NLL, C-tracking-issue, disposition-merge, finished-final-comment-period, S-tracking-impl-incomplete",
  6606. ),
  6607. "number": Number(
  6608. 43234,
  6609. ),
  6610. "repo_name": String(
  6611. "rust",
  6612. ),
  6613. "title": String(
  6614. "non-lexical lifetimes (NLL) tracking issue",
  6615. ),
  6616. "updated_at": String(
  6617. "about 44 days ago",
  6618. ),
  6619. }),
  6620. Object({
  6621. "assignees": String(
  6622. "",
  6623. ),
  6624. "html_url": String(
  6625. "https://github.com/rust-lang/rust/issues/49708",
  6626. ),
  6627. "labels": String(
  6628. "C-enhancement, T-lang, disposition-merge, finished-final-comment-period",
  6629. ),
  6630. "number": Number(
  6631. 49708,
  6632. ),
  6633. "repo_name": String(
  6634. "rust",
  6635. ),
  6636. "title": String(
  6637. "`extern type` cannot support `size_of_val` and `align_of_val`",
  6638. ),
  6639. "updated_at": String(
  6640. "24 months ago",
  6641. ),
  6642. }),
  6643. Object({
  6644. "assignees": String(
  6645. "",
  6646. ),
  6647. "html_url": String(
  6648. "https://github.com/rust-lang/rust/issues/64926",
  6649. ),
  6650. "labels": String(
  6651. "A-ffi, T-lang, B-unstable, A-const-fn, S-waiting-on-team, C-tracking-issue, A-const-eval, disposition-merge, finished-final-comment-period, F-const_extern_fn, to-announce",
  6652. ),
  6653. "number": Number(
  6654. 64926,
  6655. ),
  6656. "repo_name": String(
  6657. "rust",
  6658. ),
  6659. "title": String(
  6660. "Tracking issue for `const extern fn` and `const unsafe extern fn`",
  6661. ),
  6662. "updated_at": String(
  6663. "about 4 days ago",
  6664. ),
  6665. }),
  6666. Object({
  6667. "assignees": String(
  6668. "",
  6669. ),
  6670. "html_url": String(
  6671. "https://github.com/rust-lang/rust/issues/65516",
  6672. ),
  6673. "labels": String(
  6674. "T-lang, finished-final-comment-period, disposition-postpone, lang-team-202x-edition",
  6675. ),
  6676. "number": Number(
  6677. 65516,
  6678. ),
  6679. "repo_name": String(
  6680. "rust",
  6681. ),
  6682. "title": String(
  6683. "[Edition vNext] Consider deprecating weird nesting of items",
  6684. ),
  6685. "updated_at": String(
  6686. "11 months ago",
  6687. ),
  6688. }),
  6689. Object({
  6690. "assignees": String(
  6691. "",
  6692. ),
  6693. "html_url": String(
  6694. "https://github.com/rust-lang/rust/issues/66741",
  6695. ),
  6696. "labels": String(
  6697. "A-allocators, T-lang, T-libs-api, B-unstable, C-tracking-issue, WG-embedded, disposition-merge, finished-final-comment-period",
  6698. ),
  6699. "number": Number(
  6700. 66741,
  6701. ),
  6702. "repo_name": String(
  6703. "rust",
  6704. ),
  6705. "title": String(
  6706. "Tracking issue for `handle_alloc_error` defaulting to panic (for no_std + liballoc)",
  6707. ),
  6708. "updated_at": String(
  6709. "4 months ago",
  6710. ),
  6711. }),
  6712. Object({
  6713. "assignees": String(
  6714. "matthewjasper",
  6715. ),
  6716. "html_url": String(
  6717. "https://github.com/rust-lang/rust/pull/86699",
  6718. ),
  6719. "labels": String(
  6720. "T-lang, S-waiting-on-review, disposition-merge, finished-final-comment-period",
  6721. ),
  6722. "number": Number(
  6723. 86699,
  6724. ),
  6725. "repo_name": String(
  6726. "rust",
  6727. ),
  6728. "title": String(
  6729. "Allow reifying intrinsics to `fn` pointers.",
  6730. ),
  6731. "updated_at": String(
  6732. "2 months ago",
  6733. ),
  6734. }),
  6735. Object({
  6736. "assignees": String(
  6737. "",
  6738. ),
  6739. "html_url": String(
  6740. "https://github.com/rust-lang/rust/issues/88140",
  6741. ),
  6742. "labels": String(
  6743. "T-lang, disposition-merge, finished-final-comment-period",
  6744. ),
  6745. "number": Number(
  6746. 88140,
  6747. ),
  6748. "repo_name": String(
  6749. "rust",
  6750. ),
  6751. "title": String(
  6752. "Stabilize reserved prefixes",
  6753. ),
  6754. "updated_at": String(
  6755. "6 months ago",
  6756. ),
  6757. }),
  6758. Object({
  6759. "assignees": String(
  6760. "bstrie",
  6761. ),
  6762. "html_url": String(
  6763. "https://github.com/rust-lang/rust/issues/90957",
  6764. ),
  6765. "labels": String(
  6766. "B-RFC-approved, T-lang, A-naked, C-tracking-issue, disposition-merge, finished-final-comment-period, F-constrained_naked",
  6767. ),
  6768. "number": Number(
  6769. 90957,
  6770. ),
  6771. "repo_name": String(
  6772. "rust",
  6773. ),
  6774. "title": String(
  6775. "Tracking Issue for RFC #2972: Constrained Naked Functions ",
  6776. ),
  6777. "updated_at": String(
  6778. "about 5 days ago",
  6779. ),
  6780. }),
  6781. Object({
  6782. "assignees": String(
  6783. "Aaron1011",
  6784. ),
  6785. "html_url": String(
  6786. "https://github.com/rust-lang/rust/pull/92472",
  6787. ),
  6788. "labels": String(
  6789. "T-lang, T-libs-api, relnotes, S-waiting-on-review, disposition-merge, finished-final-comment-period",
  6790. ),
  6791. "number": Number(
  6792. 92472,
  6793. ),
  6794. "repo_name": String(
  6795. "rust",
  6796. ),
  6797. "title": String(
  6798. "proc-macro: Stop wrapping `ident` matchers into groups",
  6799. ),
  6800. "updated_at": String(
  6801. "about 4 days ago",
  6802. ),
  6803. }),
  6804. Object({
  6805. "assignees": String(
  6806. "jackh726",
  6807. ),
  6808. "html_url": String(
  6809. "https://github.com/rust-lang/rust/pull/92744",
  6810. ),
  6811. "labels": String(
  6812. "T-lang, S-waiting-on-team, disposition-merge, finished-final-comment-period, needs-fcp",
  6813. ),
  6814. "number": Number(
  6815. 92744,
  6816. ),
  6817. "repo_name": String(
  6818. "rust",
  6819. ),
  6820. "title": String(
  6821. "Check if enum from foreign crate has any non exhaustive variants when attempting a cast",
  6822. ),
  6823. "updated_at": String(
  6824. "about 19 days ago",
  6825. ),
  6826. }),
  6827. ]),
  6828. "in_fcp": Array([
  6829. Object({
  6830. "assignees": String(
  6831. "",
  6832. ),
  6833. "html_url": String(
  6834. "https://github.com/rust-lang/rfcs/pull/2956",
  6835. ),
  6836. "labels": String(
  6837. "T-lang, final-comment-period, disposition-close",
  6838. ),
  6839. "number": Number(
  6840. 2956,
  6841. ),
  6842. "repo_name": String(
  6843. "rfcs",
  6844. ),
  6845. "title": String(
  6846. "Add the partial-closure-args RFC.",
  6847. ),
  6848. "updated_at": String(
  6849. "about 0 days ago",
  6850. ),
  6851. }),
  6852. Object({
  6853. "assignees": String(
  6854. "petrochenkov",
  6855. ),
  6856. "html_url": String(
  6857. "https://github.com/rust-lang/rust/pull/84414",
  6858. ),
  6859. "labels": String(
  6860. "T-lang, final-comment-period, S-waiting-on-team, disposition-close",
  6861. ),
  6862. "number": Number(
  6863. 84414,
  6864. ),
  6865. "repo_name": String(
  6866. "rust",
  6867. ),
  6868. "title": String(
  6869. "Allow struct and enum to contain inner attrs",
  6870. ),
  6871. "updated_at": String(
  6872. "about 0 days ago",
  6873. ),
  6874. }),
  6875. Object({
  6876. "assignees": String(
  6877. "",
  6878. ),
  6879. "html_url": String(
  6880. "https://github.com/rust-lang/rust/pull/94081",
  6881. ),
  6882. "labels": String(
  6883. "T-lang, final-comment-period, S-waiting-on-review, disposition-merge, perf-regression",
  6884. ),
  6885. "number": Number(
  6886. 94081,
  6887. ),
  6888. "repo_name": String(
  6889. "rust",
  6890. ),
  6891. "title": String(
  6892. "Lazy tait take two",
  6893. ),
  6894. "updated_at": String(
  6895. "about 0 days ago",
  6896. ),
  6897. }),
  6898. Object({
  6899. "assignees": String(
  6900. "",
  6901. ),
  6902. "html_url": String(
  6903. "https://github.com/rust-lang/rust/pull/94775",
  6904. ),
  6905. "labels": String(
  6906. "T-lang, final-comment-period, S-waiting-on-review, disposition-merge",
  6907. ),
  6908. "number": Number(
  6909. 94775,
  6910. ),
  6911. "repo_name": String(
  6912. "rust",
  6913. ),
  6914. "title": String(
  6915. "Fix constants not getting dropped if part of a diverging expression",
  6916. ),
  6917. "updated_at": String(
  6918. "about 0 days ago",
  6919. ),
  6920. }),
  6921. Object({
  6922. "assignees": String(
  6923. "",
  6924. ),
  6925. "html_url": String(
  6926. "https://github.com/rust-lang/lang-team/issues/102",
  6927. ),
  6928. "labels": String(
  6929. "major-change, final-comment-period, T-lang",
  6930. ),
  6931. "number": Number(
  6932. 102,
  6933. ),
  6934. "repo_name": String(
  6935. "lang-team",
  6936. ),
  6937. "title": String(
  6938. "Deprecate target_vendor ",
  6939. ),
  6940. "updated_at": String(
  6941. "about 20 days ago",
  6942. ),
  6943. }),
  6944. Object({
  6945. "assignees": String(
  6946. "",
  6947. ),
  6948. "html_url": String(
  6949. "https://github.com/rust-lang/lang-team/issues/126",
  6950. ),
  6951. "labels": String(
  6952. "major-change, final-comment-period, T-lang, to-announce",
  6953. ),
  6954. "number": Number(
  6955. 126,
  6956. ),
  6957. "repo_name": String(
  6958. "lang-team",
  6959. ),
  6960. "title": String(
  6961. "Positional Associated Types",
  6962. ),
  6963. "updated_at": String(
  6964. "about 20 days ago",
  6965. ),
  6966. }),
  6967. Object({
  6968. "assignees": String(
  6969. "",
  6970. ),
  6971. "html_url": String(
  6972. "https://github.com/rust-lang/lang-team/issues/135",
  6973. ),
  6974. "labels": String(
  6975. "major-change, final-comment-period, T-lang, to-announce",
  6976. ),
  6977. "number": Number(
  6978. 135,
  6979. ),
  6980. "repo_name": String(
  6981. "lang-team",
  6982. ),
  6983. "title": String(
  6984. "Interoperability With C++ Destruction Order",
  6985. ),
  6986. "updated_at": String(
  6987. "about 20 days ago",
  6988. ),
  6989. }),
  6990. Object({
  6991. "assignees": String(
  6992. "",
  6993. ),
  6994. "html_url": String(
  6995. "https://github.com/rust-lang/lang-team/issues/147",
  6996. ),
  6997. "labels": String(
  6998. "major-change, final-comment-period, T-lang, to-announce",
  6999. ),
  7000. "number": Number(
  7001. 147,
  7002. ),
  7003. "repo_name": String(
  7004. "lang-team",
  7005. ),
  7006. "title": String(
  7007. "Add #[deprecated_safe] attribute to allow functions be be marked unsafe in a backwards compatible fashion",
  7008. ),
  7009. "updated_at": String(
  7010. "about 0 days ago",
  7011. ),
  7012. }),
  7013. Object({
  7014. "assignees": String(
  7015. "",
  7016. ),
  7017. "html_url": String(
  7018. "https://github.com/rust-lang/lang-team/issues/150",
  7019. ),
  7020. "labels": String(
  7021. "major-change, final-comment-period, T-lang, to-announce",
  7022. ),
  7023. "number": Number(
  7024. 150,
  7025. ),
  7026. "repo_name": String(
  7027. "lang-team",
  7028. ),
  7029. "title": String(
  7030. "Async fns in traits",
  7031. ),
  7032. "updated_at": String(
  7033. "about 7 days ago",
  7034. ),
  7035. }),
  7036. Object({
  7037. "assignees": String(
  7038. "",
  7039. ),
  7040. "html_url": String(
  7041. "https://github.com/rust-lang/lang-team/issues/151",
  7042. ),
  7043. "labels": String(
  7044. "major-change, final-comment-period, disposition-close, T-lang",
  7045. ),
  7046. "number": Number(
  7047. 151,
  7048. ),
  7049. "repo_name": String(
  7050. "lang-team",
  7051. ),
  7052. "title": String(
  7053. "extern macro!(ABI) fn",
  7054. ),
  7055. "updated_at": String(
  7056. "about 0 days ago",
  7057. ),
  7058. }),
  7059. ]),
  7060. "nominated": Array([
  7061. Object({
  7062. "assignees": String(
  7063. "",
  7064. ),
  7065. "html_url": String(
  7066. "https://github.com/rust-lang/rfcs/pull/3216",
  7067. ),
  7068. "labels": String(
  7069. "T-lang, proposed-final-comment-period, disposition-merge, I-lang-nominated",
  7070. ),
  7071. "number": Number(
  7072. 3216,
  7073. ),
  7074. "repo_name": String(
  7075. "rfcs",
  7076. ),
  7077. "title": String(
  7078. "Allow using `for<'a>` syntax when declaring closures",
  7079. ),
  7080. "updated_at": String(
  7081. "about 0 days ago",
  7082. ),
  7083. }),
  7084. Object({
  7085. "assignees": String(
  7086. "wesleywiser",
  7087. ),
  7088. "html_url": String(
  7089. "https://github.com/rust-lang/rust/pull/93313",
  7090. ),
  7091. "labels": String(
  7092. "T-lang, S-waiting-on-review, I-lang-nominated",
  7093. ),
  7094. "number": Number(
  7095. 93313,
  7096. ),
  7097. "repo_name": String(
  7098. "rust",
  7099. ),
  7100. "title": String(
  7101. "Check if call return type is visibly uninhabited when building MIR",
  7102. ),
  7103. "updated_at": String(
  7104. "about 0 days ago",
  7105. ),
  7106. }),
  7107. Object({
  7108. "assignees": String(
  7109. "nikomatsakis",
  7110. ),
  7111. "html_url": String(
  7112. "https://github.com/rust-lang/rust/pull/93582",
  7113. ),
  7114. "labels": String(
  7115. "T-compiler, S-waiting-on-review, I-lang-nominated",
  7116. ),
  7117. "number": Number(
  7118. 93582,
  7119. ),
  7120. "repo_name": String(
  7121. "rust",
  7122. ),
  7123. "title": String(
  7124. "Allow `impl Fn() -> impl Trait` in return position",
  7125. ),
  7126. "updated_at": String(
  7127. "about 8 days ago",
  7128. ),
  7129. }),
  7130. Object({
  7131. "assignees": String(
  7132. "estebank",
  7133. ),
  7134. "html_url": String(
  7135. "https://github.com/rust-lang/rust/pull/94927",
  7136. ),
  7137. "labels": String(
  7138. "T-lang, S-waiting-on-review, proposed-final-comment-period, disposition-merge, I-lang-nominated",
  7139. ),
  7140. "number": Number(
  7141. 94927,
  7142. ),
  7143. "repo_name": String(
  7144. "rust",
  7145. ),
  7146. "title": String(
  7147. "Stabilize `let_chains` in Rust 1.62.0",
  7148. ),
  7149. "updated_at": String(
  7150. "about 0 days ago",
  7151. ),
  7152. }),
  7153. Object({
  7154. "assignees": String(
  7155. "",
  7156. ),
  7157. "html_url": String(
  7158. "https://github.com/rust-lang/reference/pull/1152",
  7159. ),
  7160. "labels": String(
  7161. "I-lang-nominated, T-lang",
  7162. ),
  7163. "number": Number(
  7164. 1152,
  7165. ),
  7166. "repo_name": String(
  7167. "reference",
  7168. ),
  7169. "title": String(
  7170. "Specify guarantees for repr(rust) structs",
  7171. ),
  7172. "updated_at": String(
  7173. "about 0 days ago",
  7174. ),
  7175. }),
  7176. Object({
  7177. "assignees": String(
  7178. "",
  7179. ),
  7180. "html_url": String(
  7181. "https://github.com/rust-lang/reference/pull/1163",
  7182. ),
  7183. "labels": String(
  7184. "I-lang-nominated, T-lang",
  7185. ),
  7186. "number": Number(
  7187. 1163,
  7188. ),
  7189. "repo_name": String(
  7190. "reference",
  7191. ),
  7192. "title": String(
  7193. "Clarify guarantees provided by repr(packed)",
  7194. ),
  7195. "updated_at": String(
  7196. "about 0 days ago",
  7197. ),
  7198. }),
  7199. ]),
  7200. "p_critical": Array([]),
  7201. "pending_lang_team_prs": Array([]),
  7202. "pending_project_proposals": Array([
  7203. Object({
  7204. "assignees": String(
  7205. "",
  7206. ),
  7207. "html_url": String(
  7208. "https://github.com/rust-lang/lang-team/issues/102",
  7209. ),
  7210. "labels": String(
  7211. "major-change, final-comment-period, T-lang",
  7212. ),
  7213. "number": Number(
  7214. 102,
  7215. ),
  7216. "repo_name": String(
  7217. "lang-team",
  7218. ),
  7219. "title": String(
  7220. "Deprecate target_vendor ",
  7221. ),
  7222. "updated_at": String(
  7223. "about 20 days ago",
  7224. ),
  7225. }),
  7226. Object({
  7227. "assignees": String(
  7228. "",
  7229. ),
  7230. "html_url": String(
  7231. "https://github.com/rust-lang/lang-team/issues/125",
  7232. ),
  7233. "labels": String(
  7234. "major-change, T-lang, to-announce",
  7235. ),
  7236. "number": Number(
  7237. 125,
  7238. ),
  7239. "repo_name": String(
  7240. "lang-team",
  7241. ),
  7242. "title": String(
  7243. "Support platforms with size_t != uintptr_t",
  7244. ),
  7245. "updated_at": String(
  7246. "4 months ago",
  7247. ),
  7248. }),
  7249. Object({
  7250. "assignees": String(
  7251. "",
  7252. ),
  7253. "html_url": String(
  7254. "https://github.com/rust-lang/lang-team/issues/126",
  7255. ),
  7256. "labels": String(
  7257. "major-change, final-comment-period, T-lang, to-announce",
  7258. ),
  7259. "number": Number(
  7260. 126,
  7261. ),
  7262. "repo_name": String(
  7263. "lang-team",
  7264. ),
  7265. "title": String(
  7266. "Positional Associated Types",
  7267. ),
  7268. "updated_at": String(
  7269. "about 20 days ago",
  7270. ),
  7271. }),
  7272. Object({
  7273. "assignees": String(
  7274. "",
  7275. ),
  7276. "html_url": String(
  7277. "https://github.com/rust-lang/lang-team/issues/135",
  7278. ),
  7279. "labels": String(
  7280. "major-change, final-comment-period, T-lang, to-announce",
  7281. ),
  7282. "number": Number(
  7283. 135,
  7284. ),
  7285. "repo_name": String(
  7286. "lang-team",
  7287. ),
  7288. "title": String(
  7289. "Interoperability With C++ Destruction Order",
  7290. ),
  7291. "updated_at": String(
  7292. "about 20 days ago",
  7293. ),
  7294. }),
  7295. Object({
  7296. "assignees": String(
  7297. "",
  7298. ),
  7299. "html_url": String(
  7300. "https://github.com/rust-lang/lang-team/issues/139",
  7301. ),
  7302. "labels": String(
  7303. "major-change, T-lang, to-announce",
  7304. ),
  7305. "number": Number(
  7306. 139,
  7307. ),
  7308. "repo_name": String(
  7309. "lang-team",
  7310. ),
  7311. "title": String(
  7312. "inner crates, aka multiple crates per file",
  7313. ),
  7314. "updated_at": String(
  7315. "about 21 days ago",
  7316. ),
  7317. }),
  7318. Object({
  7319. "assignees": String(
  7320. "",
  7321. ),
  7322. "html_url": String(
  7323. "https://github.com/rust-lang/lang-team/issues/143",
  7324. ),
  7325. "labels": String(
  7326. "major-change, T-lang, to-announce",
  7327. ),
  7328. "number": Number(
  7329. 143,
  7330. ),
  7331. "repo_name": String(
  7332. "lang-team",
  7333. ),
  7334. "title": String(
  7335. "allow construction of non-exhaustive structs when using functional update syntax",
  7336. ),
  7337. "updated_at": String(
  7338. "about 46 days ago",
  7339. ),
  7340. }),
  7341. Object({
  7342. "assignees": String(
  7343. "",
  7344. ),
  7345. "html_url": String(
  7346. "https://github.com/rust-lang/lang-team/issues/147",
  7347. ),
  7348. "labels": String(
  7349. "major-change, final-comment-period, T-lang, to-announce",
  7350. ),
  7351. "number": Number(
  7352. 147,
  7353. ),
  7354. "repo_name": String(
  7355. "lang-team",
  7356. ),
  7357. "title": String(
  7358. "Add #[deprecated_safe] attribute to allow functions be be marked unsafe in a backwards compatible fashion",
  7359. ),
  7360. "updated_at": String(
  7361. "about 0 days ago",
  7362. ),
  7363. }),
  7364. Object({
  7365. "assignees": String(
  7366. "",
  7367. ),
  7368. "html_url": String(
  7369. "https://github.com/rust-lang/lang-team/issues/148",
  7370. ),
  7371. "labels": String(
  7372. "major-change, T-lang, to-announce",
  7373. ),
  7374. "number": Number(
  7375. 148,
  7376. ),
  7377. "repo_name": String(
  7378. "lang-team",
  7379. ),
  7380. "title": String(
  7381. "TRIAGEBOT TESTING: Please ignore (rename 3)",
  7382. ),
  7383. "updated_at": String(
  7384. "about 1 days ago",
  7385. ),
  7386. }),
  7387. Object({
  7388. "assignees": String(
  7389. "",
  7390. ),
  7391. "html_url": String(
  7392. "https://github.com/rust-lang/lang-team/issues/150",
  7393. ),
  7394. "labels": String(
  7395. "major-change, final-comment-period, T-lang, to-announce",
  7396. ),
  7397. "number": Number(
  7398. 150,
  7399. ),
  7400. "repo_name": String(
  7401. "lang-team",
  7402. ),
  7403. "title": String(
  7404. "Async fns in traits",
  7405. ),
  7406. "updated_at": String(
  7407. "about 7 days ago",
  7408. ),
  7409. }),
  7410. Object({
  7411. "assignees": String(
  7412. "",
  7413. ),
  7414. "html_url": String(
  7415. "https://github.com/rust-lang/lang-team/issues/151",
  7416. ),
  7417. "labels": String(
  7418. "major-change, final-comment-period, disposition-close, T-lang",
  7419. ),
  7420. "number": Number(
  7421. 151,
  7422. ),
  7423. "repo_name": String(
  7424. "lang-team",
  7425. ),
  7426. "title": String(
  7427. "extern macro!(ABI) fn",
  7428. ),
  7429. "updated_at": String(
  7430. "about 0 days ago",
  7431. ),
  7432. }),
  7433. ]),
  7434. "proposed_fcp": Array([
  7435. Object({
  7436. "assignees": String(
  7437. "",
  7438. ),
  7439. "bot_tracking_comment": String(
  7440. "1064452047",
  7441. ),
  7442. "bot_tracking_comment_content": String(
  7443. "",
  7444. ),
  7445. "bot_tracking_comment_html_url": String(
  7446. "https://github.com/rust-lang/rfcs/pull/3191#issuecomment-1064452047",
  7447. ),
  7448. "html_url": String(
  7449. "https://github.com/rust-lang/rfcs/pull/3191",
  7450. ),
  7451. "initiating_comment": String(
  7452. "1064452035",
  7453. ),
  7454. "initiating_comment_content": String(
  7455. "Team member @wesleywiser has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [ ] @Aaron1011\n* [x] @cjgillot\n* [x] @cramertj\n* [x] @davidtwco\n* [x] @eddyb\n* [x] @estebank\n* [x] @joshtriplett\n* [ ] @lcnr\n* [ ] @matthewjasper\n* [x] @michaelwoerister\n* [ ] @nagisa\n* [x] @nikomatsakis\n* [x] @oli-obk\n* [x] @petrochenkov\n* [x] @pnkfelix\n* [x] @scottmcm\n* [x] @wesleywiser\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  7456. ),
  7457. "initiating_comment_html_url": String(
  7458. "https://github.com/rust-lang/rfcs/pull/3191#issuecomment-1064452035",
  7459. ),
  7460. "labels": String(
  7461. "T-lang, T-compiler, proposed-final-comment-period, disposition-merge",
  7462. ),
  7463. "number": Number(
  7464. 3191,
  7465. ),
  7466. "repo_name": String(
  7467. "rfcs",
  7468. ),
  7469. "title": String(
  7470. "New Rust attribute to support embedding debugger visualizers",
  7471. ),
  7472. "updated_at": String(
  7473. "about 0 days ago",
  7474. ),
  7475. }),
  7476. Object({
  7477. "assignees": String(
  7478. "",
  7479. ),
  7480. "bot_tracking_comment": String(
  7481. "1064213248",
  7482. ),
  7483. "bot_tracking_comment_content": String(
  7484. "",
  7485. ),
  7486. "bot_tracking_comment_html_url": String(
  7487. "https://github.com/rust-lang/rfcs/pull/3216#issuecomment-1064213248",
  7488. ),
  7489. "html_url": String(
  7490. "https://github.com/rust-lang/rfcs/pull/3216",
  7491. ),
  7492. "initiating_comment": String(
  7493. "1064213230",
  7494. ),
  7495. "initiating_comment_content": String(
  7496. "Team member @nikomatsakis has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @cramertj\n* [x] @joshtriplett\n* [x] @nikomatsakis\n* [x] @pnkfelix\n* [ ] @scottmcm\n\nConcerns:\n\n* add-third-alternative (https://github.com/rust-lang/rfcs/pull/3216#issuecomment-1064214419)\n* grammatical-ambiguities (https://github.com/rust-lang/rfcs/pull/3216#issuecomment-1064215076)\n* ~~ultimate-syntax~~ resolved by https://github.com/rust-lang/rfcs/pull/3216#issuecomment-1068270337\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  7497. ),
  7498. "initiating_comment_html_url": String(
  7499. "https://github.com/rust-lang/rfcs/pull/3216#issuecomment-1064213230",
  7500. ),
  7501. "labels": String(
  7502. "T-lang, proposed-final-comment-period, disposition-merge, I-lang-nominated",
  7503. ),
  7504. "number": Number(
  7505. 3216,
  7506. ),
  7507. "repo_name": String(
  7508. "rfcs",
  7509. ),
  7510. "title": String(
  7511. "Allow using `for<'a>` syntax when declaring closures",
  7512. ),
  7513. "updated_at": String(
  7514. "about 0 days ago",
  7515. ),
  7516. }),
  7517. Object({
  7518. "assignees": String(
  7519. "",
  7520. ),
  7521. "bot_tracking_comment": String(
  7522. "1065659273",
  7523. ),
  7524. "bot_tracking_comment_content": String(
  7525. "",
  7526. ),
  7527. "bot_tracking_comment_html_url": String(
  7528. "https://github.com/rust-lang/rust/issues/92980#issuecomment-1065659273",
  7529. ),
  7530. "html_url": String(
  7531. "https://github.com/rust-lang/rust/issues/92980",
  7532. ),
  7533. "initiating_comment": String(
  7534. "1065659256",
  7535. ),
  7536. "initiating_comment_content": String(
  7537. "Team member @scottmcm has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @Amanieu\n* [ ] @BurntSushi\n* [x] @cramertj\n* [x] @dtolnay\n* [x] @joshtriplett\n* [x] @m-ou-se\n* [ ] @nikomatsakis\n* [ ] @pnkfelix\n* [x] @scottmcm\n* [ ] @yaahc\n\nNo concerns currently listed.\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  7538. ),
  7539. "initiating_comment_html_url": String(
  7540. "https://github.com/rust-lang/rust/issues/92980#issuecomment-1065659256",
  7541. ),
  7542. "labels": String(
  7543. "T-lang, T-libs-api, proposed-final-comment-period, C-tracking-issue, disposition-merge",
  7544. ),
  7545. "number": Number(
  7546. 92980,
  7547. ),
  7548. "repo_name": String(
  7549. "rust",
  7550. ),
  7551. "title": String(
  7552. "Tracking Issue for const offset_from (const_ptr_offset_from)",
  7553. ),
  7554. "updated_at": String(
  7555. "about 0 days ago",
  7556. ),
  7557. }),
  7558. Object({
  7559. "assignees": String(
  7560. "jackh726",
  7561. ),
  7562. "bot_tracking_comment": String(
  7563. "1029383585",
  7564. ),
  7565. "bot_tracking_comment_content": String(
  7566. "",
  7567. ),
  7568. "bot_tracking_comment_html_url": String(
  7569. "https://github.com/rust-lang/rust/pull/93628#issuecomment-1029383585",
  7570. ),
  7571. "html_url": String(
  7572. "https://github.com/rust-lang/rust/pull/93628",
  7573. ),
  7574. "initiating_comment": String(
  7575. "1029383577",
  7576. ),
  7577. "initiating_comment_content": String(
  7578. "Team member @joshtriplett has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @cramertj\n* [x] @joshtriplett\n* [x] @nikomatsakis\n* [x] @pnkfelix\n* [ ] @scottmcm\n\nConcerns:\n\n* need-consistency-rvalue-temporary-rules-between-let-and-let-else (https://github.com/rust-lang/rust/pull/93628#issuecomment-1055738523)\n* ~~not-while-rustfmt-breaks-on-it~~ resolved by https://github.com/rust-lang/rust/pull/93628#issuecomment-1032936704\n* ~~semicolon~~ resolved by https://github.com/rust-lang/rust/pull/93628#issuecomment-1059799661\n* ~~stabilization-report~~ resolved by https://github.com/rust-lang/rust/pull/93628#issuecomment-1033846359\n* ~~summarize-concerns~~ resolved by https://github.com/rust-lang/rust/pull/93628#issuecomment-1056785904\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  7579. ),
  7580. "initiating_comment_html_url": String(
  7581. "https://github.com/rust-lang/rust/pull/93628#issuecomment-1029383577",
  7582. ),
  7583. "labels": String(
  7584. "T-rustdoc, T-lang, relnotes, S-waiting-on-author, proposed-final-comment-period, disposition-merge, needs-fcp, S-waiting-on-fcp",
  7585. ),
  7586. "number": Number(
  7587. 93628,
  7588. ),
  7589. "repo_name": String(
  7590. "rust",
  7591. ),
  7592. "title": String(
  7593. "Stabilize `let else`",
  7594. ),
  7595. "updated_at": String(
  7596. "about 0 days ago",
  7597. ),
  7598. }),
  7599. Object({
  7600. "assignees": String(
  7601. "estebank",
  7602. ),
  7603. "bot_tracking_comment": String(
  7604. "1067658436",
  7605. ),
  7606. "bot_tracking_comment_content": String(
  7607. "",
  7608. ),
  7609. "bot_tracking_comment_html_url": String(
  7610. "https://github.com/rust-lang/rust/pull/94927#issuecomment-1067658436",
  7611. ),
  7612. "html_url": String(
  7613. "https://github.com/rust-lang/rust/pull/94927",
  7614. ),
  7615. "initiating_comment": String(
  7616. "1067658430",
  7617. ),
  7618. "initiating_comment_content": String(
  7619. "Team member @joshtriplett has proposed to merge this. The next step is review by the rest of the tagged team members:\n\n* [x] @cramertj\n* [x] @joshtriplett\n* [x] @nikomatsakis\n* [ ] @pnkfelix\n* [ ] @scottmcm\n\nConcerns:\n\n* add-test-to-confirm-no-let-else-in-let-chain (https://github.com/rust-lang/rust/pull/94927#issuecomment-1068267198)\n* doc-pr (https://github.com/rust-lang/rust/pull/94927#issuecomment-1068120114)\n* irrefutable-lint (https://github.com/rust-lang/rust/pull/94927#issuecomment-1067658430)\n\nOnce a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!\n\nSee [this document](https://github.com/rust-lang/rfcbot-rs/blob/master/README.md) for info about what commands tagged team members can give me.",
  7620. ),
  7621. "initiating_comment_html_url": String(
  7622. "https://github.com/rust-lang/rust/pull/94927#issuecomment-1067658430",
  7623. ),
  7624. "labels": String(
  7625. "T-lang, S-waiting-on-review, proposed-final-comment-period, disposition-merge, I-lang-nominated",
  7626. ),
  7627. "number": Number(
  7628. 94927,
  7629. ),
  7630. "repo_name": String(
  7631. "rust",
  7632. ),
  7633. "title": String(
  7634. "Stabilize `let_chains` in Rust 1.62.0",
  7635. ),
  7636. "updated_at": String(
  7637. "about 0 days ago",
  7638. ),
  7639. }),
  7640. ]),
  7641. "rfcs_waiting_to_be_merged": Array([]),
  7642. "scheduled_meetings": Array([
  7643. Object({
  7644. "assignees": String(
  7645. "",
  7646. ),
  7647. "html_url": String(
  7648. "https://github.com/rust-lang/lang-team/issues/94",
  7649. ),
  7650. "labels": String(
  7651. "meeting-proposal, meeting-scheduled, T-lang",
  7652. ),
  7653. "number": Number(
  7654. 94,
  7655. ),
  7656. "repo_name": String(
  7657. "lang-team",
  7658. ),
  7659. "title": String(
  7660. "Structural equality",
  7661. ),
  7662. "updated_at": String(
  7663. "4 months ago",
  7664. ),
  7665. }),
  7666. Object({
  7667. "assignees": String(
  7668. "",
  7669. ),
  7670. "html_url": String(
  7671. "https://github.com/rust-lang/lang-team/issues/97",
  7672. ),
  7673. "labels": String(
  7674. "meeting-proposal, meeting-scheduled, T-lang",
  7675. ),
  7676. "number": Number(
  7677. 97,
  7678. ),
  7679. "repo_name": String(
  7680. "lang-team",
  7681. ),
  7682. "title": String(
  7683. "Never allow unwinding from Drop impls",
  7684. ),
  7685. "updated_at": String(
  7686. "about 26 days ago",
  7687. ),
  7688. }),
  7689. Object({
  7690. "assignees": String(
  7691. "",
  7692. ),
  7693. "html_url": String(
  7694. "https://github.com/rust-lang/lang-team/issues/119",
  7695. ),
  7696. "labels": String(
  7697. "meeting-proposal, meeting-scheduled, T-lang",
  7698. ),
  7699. "number": Number(
  7700. 119,
  7701. ),
  7702. "repo_name": String(
  7703. "lang-team",
  7704. ),
  7705. "title": String(
  7706. "Dyn upcasting, safety considerations",
  7707. ),
  7708. "updated_at": String(
  7709. "4 months ago",
  7710. ),
  7711. }),
  7712. Object({
  7713. "assignees": String(
  7714. "",
  7715. ),
  7716. "html_url": String(
  7717. "https://github.com/rust-lang/lang-team/issues/131",
  7718. ),
  7719. "labels": String(
  7720. "meeting-proposal, meeting-scheduled, T-lang",
  7721. ),
  7722. "number": Number(
  7723. 131,
  7724. ),
  7725. "repo_name": String(
  7726. "lang-team",
  7727. ),
  7728. "title": String(
  7729. "Const eval overview",
  7730. ),
  7731. "updated_at": String(
  7732. "3 months ago",
  7733. ),
  7734. }),
  7735. Object({
  7736. "assignees": String(
  7737. "",
  7738. ),
  7739. "html_url": String(
  7740. "https://github.com/rust-lang/lang-team/issues/132",
  7741. ),
  7742. "labels": String(
  7743. "meeting-proposal, meeting-scheduled, T-lang",
  7744. ),
  7745. "number": Number(
  7746. 132,
  7747. ),
  7748. "repo_name": String(
  7749. "lang-team",
  7750. ),
  7751. "title": String(
  7752. "Lint policy",
  7753. ),
  7754. "updated_at": String(
  7755. "about 7 days ago",
  7756. ),
  7757. }),
  7758. Object({
  7759. "assignees": String(
  7760. "",
  7761. ),
  7762. "html_url": String(
  7763. "https://github.com/rust-lang/lang-team/issues/144",
  7764. ),
  7765. "labels": String(
  7766. "meeting-proposal, meeting-scheduled, T-lang",
  7767. ),
  7768. "number": Number(
  7769. 144,
  7770. ),
  7771. "repo_name": String(
  7772. "lang-team",
  7773. ),
  7774. "title": String(
  7775. "\"RPITIDT\"",
  7776. ),
  7777. "updated_at": String(
  7778. "about 4 days ago",
  7779. ),
  7780. }),
  7781. ]),
  7782. },
  7783. }
  7784. 2022-03-22T23:59:37.030772Z DEBUG globset: glob converted to regex: Glob { glob: "templates/*", re: "(?-u)^templates/[^/]*$", opts: GlobOptions { case_insensitive: false, literal_separator: true, backslash_escape: true }, tokens: Tokens([Literal('t'), Literal('e'), Literal('m'), Literal('p'), Literal('l'), Literal('a'), Literal('t'), Literal('e'), Literal('s'), Literal('/'), ZeroOrMore]) }
  7785. 2022-03-22T23:59:37.030835Z DEBUG globset: built glob set; 0 literals, 0 basenames, 0 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 1 regexes
  7786. ---
  7787. title: Triage meeting DATE
  7788. tags: triage-meeting
  7789. ---
  7790. # T-lang meeting agenda
  7791. * Meeting date: DATE
  7792. ## Attendance
  7793. * Team members:
  7794. * Others:
  7795. ## Meeting roles
  7796. * Action item scribe:
  7797. * Note-taker:
  7798. ## Scheduled meetings
  7799. - "Structural equality" [lang-team#94](https://github.com/rust-lang/lang-team/issues/94)
  7800. - "Never allow unwinding from Drop impls" [lang-team#97](https://github.com/rust-lang/lang-team/issues/97)
  7801. - "Dyn upcasting, safety considerations" [lang-team#119](https://github.com/rust-lang/lang-team/issues/119)
  7802. - "Const eval overview" [lang-team#131](https://github.com/rust-lang/lang-team/issues/131)
  7803. - "Lint policy" [lang-team#132](https://github.com/rust-lang/lang-team/issues/132)
  7804. - ""RPITIDT"" [lang-team#144](https://github.com/rust-lang/lang-team/issues/144)
  7805. ## Announcements or custom items
  7806. (Meeting attendees, feel free to add items here!)
  7807. ## Action item review
  7808. * [Action items list](https://hackmd.io/gstfhtXYTHa3Jv-P_2RK7A)
  7809. ## Pending lang team project proposals
  7810. ### "Deprecate target_vendor " lang-team#102
  7811. **Link:** https://github.com/rust-lang/lang-team/issues/102
  7812. ### "Support platforms with size_t != uintptr_t" lang-team#125
  7813. **Link:** https://github.com/rust-lang/lang-team/issues/125
  7814. ### "Positional Associated Types" lang-team#126
  7815. **Link:** https://github.com/rust-lang/lang-team/issues/126
  7816. ### "Interoperability With C++ Destruction Order" lang-team#135
  7817. **Link:** https://github.com/rust-lang/lang-team/issues/135
  7818. ### "inner crates, aka multiple crates per file" lang-team#139
  7819. **Link:** https://github.com/rust-lang/lang-team/issues/139
  7820. ### "allow construction of non-exhaustive structs when using functional update syntax" lang-team#143
  7821. **Link:** https://github.com/rust-lang/lang-team/issues/143
  7822. ### "Add #[deprecated_safe] attribute to allow functions be be marked unsafe in a backwards compatible fashion" lang-team#147
  7823. **Link:** https://github.com/rust-lang/lang-team/issues/147
  7824. ### "TRIAGEBOT TESTING: Please ignore (rename 3)" lang-team#148
  7825. **Link:** https://github.com/rust-lang/lang-team/issues/148
  7826. ### "Async fns in traits" lang-team#150
  7827. **Link:** https://github.com/rust-lang/lang-team/issues/150
  7828. ### "extern macro!(ABI) fn" lang-team#151
  7829. **Link:** https://github.com/rust-lang/lang-team/issues/151
  7830. ## PRs on the lang-team repo
  7831. None.
  7832. ## RFCs waiting to be merged
  7833. None.
  7834. ## Proposed FCPs
  7835. **Check your boxes!**
  7836. ### "New Rust attribute to support embedding debugger visualizers" rfcs#3191
  7837. **Link:** https://github.com/rust-lang/rfcs/pull/3191
  7838. ### "Allow using `for<'a>` syntax when declaring closures" rfcs#3216
  7839. **Link:** https://github.com/rust-lang/rfcs/pull/3216
  7840. ### "Tracking Issue for const offset_from (const_ptr_offset_from)" rust#92980
  7841. **Link:** https://github.com/rust-lang/rust/issues/92980
  7842. ### "Stabilize `let else`" rust#93628
  7843. **Link:** https://github.com/rust-lang/rust/pull/93628
  7844. ### "Stabilize `let_chains` in Rust 1.62.0" rust#94927
  7845. **Link:** https://github.com/rust-lang/rust/pull/94927
  7846. ## Active FCPs
  7847. ### "Add the partial-closure-args RFC." rfcs#2956
  7848. **Link:** https://github.com/rust-lang/rfcs/pull/2956
  7849. ### "Allow struct and enum to contain inner attrs" rust#84414
  7850. **Link:** https://github.com/rust-lang/rust/pull/84414
  7851. ### "Lazy tait take two" rust#94081
  7852. **Link:** https://github.com/rust-lang/rust/pull/94081
  7853. ### "Fix constants not getting dropped if part of a diverging expression" rust#94775
  7854. **Link:** https://github.com/rust-lang/rust/pull/94775
  7855. ### "Deprecate target_vendor " lang-team#102
  7856. **Link:** https://github.com/rust-lang/lang-team/issues/102
  7857. ### "Positional Associated Types" lang-team#126
  7858. **Link:** https://github.com/rust-lang/lang-team/issues/126
  7859. ### "Interoperability With C++ Destruction Order" lang-team#135
  7860. **Link:** https://github.com/rust-lang/lang-team/issues/135
  7861. ### "Add #[deprecated_safe] attribute to allow functions be be marked unsafe in a backwards compatible fashion" lang-team#147
  7862. **Link:** https://github.com/rust-lang/lang-team/issues/147
  7863. ### "Async fns in traits" lang-team#150
  7864. **Link:** https://github.com/rust-lang/lang-team/issues/150
  7865. ### "extern macro!(ABI) fn" lang-team#151
  7866. **Link:** https://github.com/rust-lang/lang-team/issues/151
  7867. ## P-critical issues
  7868. None.
  7869. ## Nominated RFCs, PRs and issues
  7870. ### "Allow using `for<'a>` syntax when declaring closures" rfcs#3216
  7871. **Link:** https://github.com/rust-lang/rfcs/pull/3216
  7872. ### "Check if call return type is visibly uninhabited when building MIR" rust#93313
  7873. **Link:** https://github.com/rust-lang/rust/pull/93313
  7874. ### "Allow `impl Fn() -> impl Trait` in return position" rust#93582
  7875. **Link:** https://github.com/rust-lang/rust/pull/93582
  7876. ### "Stabilize `let_chains` in Rust 1.62.0" rust#94927
  7877. **Link:** https://github.com/rust-lang/rust/pull/94927
  7878. ### "Specify guarantees for repr(rust) structs" reference#1152
  7879. **Link:** https://github.com/rust-lang/reference/pull/1152
  7880. ### "Clarify guarantees provided by repr(packed)" reference#1163
  7881. **Link:** https://github.com/rust-lang/reference/pull/1163