2017-12-15 2 views
1

Ich habe ein M3-Objekt erstellt vonDie M3 Anmerkung ist nicht angemeldete

M3 m3 = createM3FromDirectory(project) 

für einiges Projektverzeichnis. Außerdem habe ich

alias M3Dependencies = map[str depType, rel [loc from, loc to] dependencies]; 
M3Dependencies result =(); 

In der Präambel meines Moduls habe ich haben:

extend lang::java::m3::Core; 
extend lang::java::jdt::Project; 
import lang::java::jdt::m3::AST; 
import analysis::m3::Registry; 

Wenn ich

result["extends"]  = [email protected]; 

ich eine Ausnahme erhalten, sagen Undeclared Anmerkung: erstreckt sich auf M3

Der Code, aus dem dieses Beispiel stammt hat in 2015 und 2016 gut funktioniert, jetzt ist es wegen dieser Ausnahme kaputt. Können Sie mir bitte sagen, was schief läuft?

Cheers, Steven Klusener

+0

PS. Wenn ich den Fehler rekonstruieren und ein anderes M3-Objekt konstruieren will, bekomme ich den Fehler * Kann einen konstruierten M3-Knoten nicht als Funktion * aufrufen. Was geht hier vor sich? –

Antwort

2

leid. Wir beenden langsam Annotationen und sie werden durch Schlüsselwortparameter ersetzt. Der Name jedes Schlüsselwortparameters ist identisch mit dem Namen der Annotation, die er ersetzt. Siehe zum Beispiel lang::java::m3::Core, wo Sie diese Definition finden:

data M3(
    rel[loc from, loc to] extends = {},   // classes extending classes and interfaces extending interfaces 
    rel[loc from, loc to] implements = {},   // classes implementing interfaces 
    rel[loc from, loc to] methodInvocation = {}, // methods calling each other (including constructors) 
    rel[loc from, loc to] fieldAccess = {},  // code using data (like fields) 
    rel[loc from, loc to] typeDependency = {},  // using a type literal in some code (types of variables, annotations) 
    rel[loc from, loc to] methodOverrides = {}, // which method override which other methods 
    rel[loc declaration, loc annotation] annotations = {} 
); 

Also, wo Sie vorher [email protected] schreiben mussten, sollten Sie jetzt m3.extends schreiben. Hoffe das hilft.

Verwandte Themen