The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
{"subroutine":[[31,"BEGIN"],[32,"BEGIN"],[33,"BEGIN"],[41,"BEGIN"],[42,"BEGIN"],[42,"BEGIN"],[42,"BEGIN"],[43,"BEGIN"],[44,"BEGIN"],[45,"BEGIN"],[46,"BEGIN"],[48,"BEGIN"],[49,"BEGIN"],[50,"BEGIN"],[51,"BEGIN"],[52,"BEGIN"],[53,"BEGIN"],[55,"BEGIN"],[145,"new"],[167,"fileFindModule"],[195,"parse"],[235,"parse0"],[255,"aNamePackage"],[271,"aNameBase"],[291,"hasBaseClass"],[313,"aNameModuleUse"],[331,"packageAt"],[363,"isEmptyAt"],[388,"moduleAt"],[413,"methodCallAt"],[436,"selfMethodCallAt"],[460,"moduleMethodCallAt"],[486,"aObjectMethodCallAt"],[516,"rhRegexExample"],[535,"oLocationSub"],[570,"oLocationSubAt"],[606,"oLocationSubDefinition"],[674,"oLocationPod"],[742,"aMethodCallOf"],[783,"determineLikelyApi"],[806,"determineLikelyApi0"],[884,"mergePackageApiWithBase"],[923,"scoreInterfaceMatch"],[955,"stringSignatureSurveyFromFile"],[985,"_stringReplace"],[996,"stringSignatureSurveyFromSource"],[1032,"oLocationOfNode"],[1058,"aDocumentFind"],[1075,"aNodeFind"],[1099,"oLocationEnclosingSub"],[1134,"cacheSet"],[1154,"cacheGet"]],"file":"lib/Devel/PerlySense/Document.pm","branch":[[170,{"text":"unless my $file = $self->file"}],[199,{"text":"if (my $oDocument = $self->cacheGet($keyCache, $file)) { }"}],[210,{"text":"if (my $oMeta = $self->cacheGet($keyCache, $file)) { }"}],[238,{"text":"unless my $oDocument = 'PPI::Document'->new($file)"}],[276,{"text":"if not $hStop{$_}"}],[333,{"text":"unless $row > 0"}],[335,{"text":"if $_->namespace"}],[337,{"text":"unless my(@aPackage) = grep({$_->location->[0] <= $row if $_->namespace;} @{$self->oMeta->raPackage;})"}],[366,{"text":"if $self->oMeta->moduleAt('row', $row, 'col', $col)"}],[367,{"text":"if $self->oMeta->rhMethodAt('row', $row, 'col', $col)"}],[416,{"text":"unless my $rhMethod = $self->oMeta->rhMethodAt('row', $row, 'col', $col)"}],[419,{"text":"if wantarray"}],[420,{"text":"defined $oObject ? :"}],[440,{"text":"unless $method"}],[441,{"text":"unless $object and $object eq '$self'"}],[464,{"text":"unless $module and $method"}],[465,{"text":"if $module =~ /[^\\w:]/"}],[467,{"text":"if wantarray"}],[490,{"text":"unless $oObject and $oMethod"}],[491,{"text":"unless $oObject =~ /^\\$\\w+$/"}],[493,{"text":"unless my $oLocationSub = $self->oLocationEnclosingSub($oMethod)"}],[544,{"text":"if ($oLocation->rhProperty->{'nameSub'} eq $name and $oLocation->rhProperty->{'namePackage'} eq $package)"}],[574,{"text":"if ($row >= $oLocation->row and $row <= $oLocation->rhProperty->{'oLocationEnd'}->row)"}],[612,{"text":"unless $package = $self->packageAt('row', $row)"}],[611,{"text":"if ($row) { }"}],[610,{"text":"unless ($package)"}],[622,{"text":"if $oLocation"}],[626,{"text":"if $oLocation"}],[630,{"text":"unless my $oDocumentBase = $self->oPerlySense->oDocumentFindModule('nameModule', $moduleBase, 'dirOrigin', dirname($self->file))"}],[635,{"text":"if $oLocation"}],[678,{"text":"unless $lookFor eq 'method'"}],[692,{"text":"if $pod =~ /^=item\\s/"}],[685,{"text":"if ($oLocationCur->rhProperty->{'pod'} =~ /^= \\w+ \\s+ [^\\n]*? \\b $rexName \\b /x)"}],[700,{"text":"if $ignoreBaseModules"}],[704,{"text":"unless my $oDocumentBase = $self->oPerlySense->oDocumentFindModule('nameModule', $moduleBase, 'dirOrigin', dirname($self->file))"}],[713,{"text":"unless ($oLocation->rhProperty->{'pod'} =~ /\\n=head1 From <[\\w:]+>\\n$/)"}],[708,{"text":"if (my $oLocation = $oDocumentBase->oLocationPod('name', $name, 'lookFor', $lookFor))"}],[787,{"text":"if (my $rhPackageApi = $self->cacheGet($keyCache, $self->file)) { }"}],[819,{"text":"if keys %{$oApiCur->rhSub;}"}],[817,{"text":"if ($oNode->isa('PPI::Statement::Package'))"}],[829,{"text":"if ($oNode->isa('PPI::Statement::Sub') and not $oNode->forward)"}],[835,{"text":"if keys %{$oApiCur->rhSub;}"}],[841,{"text":"unless my $oDocumentBase = $self->oPerlySense->oDocumentFindModule('nameModule', $nameBase, 'dirOrigin', dirname($self->file))"}],[847,{"text":"if $nameModule eq $nameBase"}],[887,{"text":"unless my $oApiBase = $$rhPackageApiBase{$nameModuleBase}"}],[890,{"text":"unless $oApi"}],[926,{"text":"unless my $oApi = $self->rhPackageApiLikely->{$nameModule}"}],[929,{"text":"unless $oApi->isSubSupported($method)"}],[989,{"text":"if index($match, ':') > -1"}],[988,{"text":"if (index($match, 'sub') > -1)"}],[992,{"text":"if index($match, '=') > -1"}],[1077,{"text":"unless my $raList = $oNode->find($what)"}],[1106,{"text":"if ($row >= $oLocation->row and $row <= $oLocation->rhProperty->{'oLocationEnd'}->row)"}]],"condition":[[441,{"left":"$object","right":"$object eq '$self'","op":"and","type":"and_3"}],[464,{"type":"and_3","right":"$method","op":"and","left":"$module"}],[490,{"type":"and_3","right":"$oMethod","op":"and","left":"$oObject"}],[538,{"type":"or_2","right":"'main'","op":"||","left":"$p{'package'}"}],[544,{"op":"and","right":"$oLocation->rhProperty->{'namePackage'} eq $package","type":"and_3","left":"$oLocation->rhProperty->{'nameSub'} eq $name"}],[574,{"op":"and","right":"$row <= $oLocation->rhProperty->{'oLocationEnd'}->row","type":"and_3","left":"$row >= $oLocation->row"}],[677,{"type":"or_2","right":"0","op":"||","left":"$p{'ignoreBaseModules'}"}],[829,{"left":"$oNode->isa('PPI::Statement::Sub')","right":"not $oNode->forward","op":"and","type":"and_3"}],[1034,{"left":"$extraRow","type":"or_2","op":"||=","right":"0"}],[1035,{"op":"||=","right":"0","type":"or_2","left":"$extraCol"}],[1106,{"right":"$row <= $oLocation->rhProperty->{'oLocationEnd'}->row","op":"and","type":"and_3","left":"$row >= $oLocation->row"}]],"digest":"c21326483b455ebc92814e564cfa1bb7","statement":[31,31,31,32,32,32,33,33,33,41,41,41,42,42,42,42,42,42,42,42,42,43,43,43,44,44,44,45,45,45,46,46,46,48,48,48,49,49,49,50,50,50,51,51,51,52,52,52,53,53,53,55,55,55,145,146,148,149,151,167,168,170,173,195,196,198,199,200,202,203,206,209,210,211,213,215,217,218,221,235,236,238,239,241,243,255,256,256,256,271,274,274,276,276,276,278,291,292,294,294,294,313,315,315,316,316,316,318,331,332,333,337,335,336,340,341,363,364,366,367,369,388,389,390,413,414,416,417,419,420,436,437,439,440,441,443,460,461,463,464,465,467,468,486,487,489,490,491,493,495,516,517,519,535,536,537,538,540,540,544,546,547,551,570,571,573,573,574,577,578,582,606,607,608,608,610,611,612,615,618,621,622,625,626,629,630,634,635,638,674,675,676,677,678,680,681,681,685,686,687,688,689,691,692,693,695,700,703,704,708,713,714,717,721,742,743,747,750,753,751,752,761,783,784,786,787,788,790,791,794,806,807,810,812,813,814,815,816,817,818,819,819,822,823,824,825,829,830,831,834,835,835,840,841,846,847,850,852,862,864,884,885,887,889,890,892,894,923,924,926,928,929,932,933,933,935,936,939,941,955,956,985,986,988,989,990,992,994,996,997,999,1003,1001,1007,1010,1013,1015,1032,1033,1034,1035,1038,1058,1059,1060,1075,1076,1077,1078,1099,1100,1104,1104,1105,1105,1106,1107,1112,1134,1135,1136,1154,1155,1156,1157],"pod":[[145,"new"],[167,"fileFindModule"],[195,"parse"],[235,"parse0"],[255,"aNamePackage"],[271,"aNameBase"],[291,"hasBaseClass"],[313,"aNameModuleUse"],[331,"packageAt"],[363,"isEmptyAt"],[388,"moduleAt"],[413,"methodCallAt"],[436,"selfMethodCallAt"],[460,"moduleMethodCallAt"],[486,"aObjectMethodCallAt"],[516,"rhRegexExample"],[535,"oLocationSub"],[570,"oLocationSubAt"],[606,"oLocationSubDefinition"],[674,"oLocationPod"],[742,"aMethodCallOf"],[783,"determineLikelyApi"],[806,"determineLikelyApi0"],[884,"mergePackageApiWithBase"],[923,"scoreInterfaceMatch"],[955,"stringSignatureSurveyFromFile"],[996,"stringSignatureSurveyFromSource"],[1032,"oLocationOfNode"],[1058,"aDocumentFind"],[1075,"aNodeFind"],[1099,"oLocationEnclosingSub"],[1134,"cacheSet"],[1154,"cacheGet"]],"start":{"42":{"BEGIN":[{"condition":null,"branch":null,"subroutine":4,"time":null,"statement":12,"pod":null},{"statement":15,"pod":null,"time":null,"branch":null,"condition":null,"subroutine":5},{"branch":null,"condition":null,"subroutine":6,"time":null,"statement":18,"pod":null}]},"32":{"BEGIN":[{"time":null,"branch":null,"condition":null,"subroutine":1,"statement":3,"pod":null}]},"49":{"BEGIN":[{"statement":36,"pod":null,"branch":null,"condition":null,"subroutine":12,"time":null}]},"145":{"new":[{"time":null,"condition":null,"branch":null,"subroutine":18,"statement":54,"pod":null}]},"363":{"isEmptyAt":[{"time":null,"subroutine":27,"condition":null,"branch":8,"pod":9,"statement":116}]},"996":{"stringSignatureSurveyFromSource":[{"statement":288,"pod":26,"branch":51,"condition":8,"subroutine":45,"time":null}]},"255":{"aNamePackage":[{"condition":null,"branch":4,"subroutine":22,"time":null,"statement":85,"pod":4}]},"742":{"aMethodCallOf":[{"time":null,"condition":7,"branch":37,"subroutine":38,"statement":214,"pod":20}]},"195":{"parse":[{"time":null,"condition":null,"branch":1,"subroutine":20,"statement":63,"pod":2}]},"1075":{"aNodeFind":[{"branch":51,"condition":10,"subroutine":48,"time":null,"statement":305,"pod":29}]},"46":{"BEGIN":[{"statement":30,"pod":null,"condition":null,"branch":null,"subroutine":10,"time":null}]},"923":{"scoreInterfaceMatch":[{"time":null,"subroutine":42,"condition":8,"branch":46,"pod":24,"statement":267}]},"48":{"BEGIN":[{"subroutine":11,"condition":null,"branch":null,"time":null,"pod":null,"statement":33}]},"44":{"BEGIN":[{"time":null,"subroutine":8,"condition":null,"branch":null,"pod":null,"statement":24}]},"51":{"BEGIN":[{"statement":42,"pod":null,"condition":null,"branch":null,"subroutine":14,"time":null}]},"167":{"fileFindModule":[{"pod":1,"statement":59,"subroutine":19,"branch":null,"condition":null,"time":null}]},"1058":{"aDocumentFind":[{"statement":302,"pod":28,"branch":51,"condition":10,"subroutine":47,"time":null}]},"291":{"hasBaseClass":[{"time":null,"branch":5,"condition":null,"subroutine":24,"statement":96,"pod":6}]},"460":{"moduleMethodCallAt":[{"time":null,"subroutine":31,"condition":1,"branch":15,"pod":13,"statement":136}]},"1032":{"oLocationOfNode":[{"pod":27,"statement":297,"time":null,"subroutine":46,"branch":51,"condition":8}]},"235":{"parse0":[{"time":null,"branch":3,"condition":null,"subroutine":21,"statement":79,"pod":3}]},"783":{"determineLikelyApi":[{"statement":222,"pod":21,"time":null,"branch":37,"condition":7,"subroutine":39}]},"52":{"BEGIN":[{"pod":null,"statement":45,"subroutine":15,"condition":null,"branch":null,"time":null}]},"436":{"selfMethodCallAt":[{"pod":12,"statement":130,"subroutine":30,"condition":null,"branch":13,"time":null}]},"606":{"oLocationSubDefinition":[{"time":null,"subroutine":36,"condition":6,"branch":23,"pod":18,"statement":171}]},"-1":{"__COVER__":[{"pod":33,"statement":325,"subroutine":52,"branch":53,"condition":11,"time":null}]},"516":{"rhRegexExample":[{"pod":15,"statement":150,"time":null,"subroutine":33,"condition":3,"branch":21}]},"313":{"aNameModuleUse":[{"statement":101,"pod":7,"branch":5,"condition":null,"subroutine":25,"time":null}]},"570":{"oLocationSubAt":[{"statement":163,"pod":17,"time":null,"branch":22,"condition":5,"subroutine":35}]},"985":{"_stringReplace":[{"time":null,"subroutine":44,"branch":48,"condition":8,"pod":26,"statement":281}]},"413":{"methodCallAt":[{"pod":11,"statement":124,"time":null,"subroutine":29,"branch":10,"condition":null}]},"43":{"BEGIN":[{"pod":null,"statement":21,"time":null,"subroutine":7,"branch":null,"condition":null}]},"53":{"BEGIN":[{"statement":48,"pod":null,"branch":null,"condition":null,"subroutine":16,"time":null}]},"955":{"stringSignatureSurveyFromFile":[{"statement":279,"pod":25,"branch":48,"condition":8,"subroutine":43,"time":null}]},"31":{"BEGIN":[{"subroutine":null,"branch":null,"condition":null,"time":null,"pod":null,"statement":null}]},"50":{"BEGIN":[{"condition":null,"branch":null,"subroutine":13,"time":null,"statement":39,"pod":null}]},"331":{"packageAt":[{"pod":8,"statement":108,"subroutine":26,"condition":null,"branch":5,"time":null}]},"45":{"BEGIN":[{"condition":null,"branch":null,"subroutine":9,"time":null,"statement":27,"pod":null}]},"884":{"mergePackageApiWithBase":[{"time":null,"branch":44,"condition":8,"subroutine":41,"statement":260,"pod":23}]},"1099":{"oLocationEnclosingSub":[{"time":null,"condition":10,"branch":52,"subroutine":49,"statement":309,"pod":30}]},"33":{"BEGIN":[{"condition":null,"branch":null,"subroutine":2,"time":null,"statement":6,"pod":null}]},"388":{"moduleAt":[{"statement":121,"pod":10,"branch":10,"condition":null,"subroutine":28,"time":null}]},"806":{"determineLikelyApi0":[{"statement":230,"pod":22,"time":null,"condition":7,"branch":38,"subroutine":40}]},"271":{"aNameBase":[{"statement":89,"pod":5,"time":null,"branch":4,"condition":null,"subroutine":23}]},"1134":{"cacheSet":[{"time":null,"condition":11,"branch":53,"subroutine":50,"statement":318,"pod":31}]},"674":{"oLocationPod":[{"pod":19,"statement":189,"time":null,"subroutine":37,"branch":30,"condition":6}]},"486":{"aObjectMethodCallAt":[{"pod":14,"statement":143,"subroutine":32,"branch":18,"condition":2,"time":null}]},"535":{"oLocationSub":[{"pod":16,"statement":153,"time":null,"subroutine":34,"branch":21,"condition":3}]},"1154":{"cacheGet":[{"condition":11,"branch":53,"subroutine":51,"time":null,"statement":321,"pod":32}]},"55":{"BEGIN":[{"time":null,"branch":null,"condition":null,"subroutine":17,"statement":51,"pod":null}]},"41":{"BEGIN":[{"statement":9,"pod":null,"branch":null,"condition":null,"subroutine":3,"time":null}]}}}