Search in sources :

Example 26 with OCFile

use of com.jetbrains.cidr.lang.psi.OCFile in project intellij by bazelbuild.

the class IwyuPragmasTest method hasSuffixSoNoMatch_parseKeep.

@Test
public void hasSuffixSoNoMatch_parseKeep() {
    OCFile file = createFile("bar.cc", "#include \"f/foo1.h\" // IWYU pragma: keepaway", "#include \"f/foo2.h\" // IWYU pragma: keep");
    IwyuPragmas pragmas = IwyuPragmas.parse(file);
    assertThat(pragmas.keeps).containsExactly(KeepPragma.create(IncludePath.create("f/foo2.h", Delimiters.QUOTES)));
}
Also used : OCFile(com.jetbrains.cidr.lang.psi.OCFile) Test(org.junit.Test)

Example 27 with OCFile

use of com.jetbrains.cidr.lang.psi.OCFile in project intellij by bazelbuild.

the class IwyuPragmasTest method noPathYet_parse.

@Test
public void noPathYet_parse() {
    OCFile file = createFile("bar.cc", "#include <memory>", "#include ");
    IwyuPragmas pragmas = IwyuPragmas.parse(file);
    assertThat(pragmas.keeps).isEmpty();
}
Also used : OCFile(com.jetbrains.cidr.lang.psi.OCFile) Test(org.junit.Test)

Example 28 with OCFile

use of com.jetbrains.cidr.lang.psi.OCFile in project intellij by bazelbuild.

the class IwyuPragmasTest method hasMultipleOtherOrder_parsePrivate.

@Test
public void hasMultipleOtherOrder_parsePrivate() {
    // Like hasMultiple_parsePrivate, but with order swapped
    OCFile file = createFile("private.h", "// Stuff", "// IWYU pragma: private, include \"public.h\"", "// IWYU pragma: private", "#include \"private_details.h\"");
    IwyuPragmas pragmas = IwyuPragmas.parse(file);
    assertThat(pragmas.privatePragma.isPresent()).isTrue();
    PrivatePragma privatePragma = pragmas.privatePragma.get();
    assertThat(privatePragma.includeOther.isPresent()).isFalse();
}
Also used : OCFile(com.jetbrains.cidr.lang.psi.OCFile) PrivatePragma(com.google.idea.blaze.cpp.includes.IwyuPragmas.PrivatePragma) Test(org.junit.Test)

Example 29 with OCFile

use of com.jetbrains.cidr.lang.psi.OCFile in project intellij by bazelbuild.

the class IwyuPragmasTest method hasMultiple_parsePrivate.

@Test
public void hasMultiple_parsePrivate() {
    // We shouldn't have multiple private pragmas, but we just take the last one.
    // An alternative might be to take the most descriptive one (when there is a unique
    // most descriptive one).
    OCFile file = createFile("private.h", "// Stuff", "// IWYU pragma: private", "// IWYU pragma: private, include \"public.h\"", "#include \"private_details.h\"");
    IwyuPragmas pragmas = IwyuPragmas.parse(file);
    assertThat(pragmas.privatePragma.isPresent()).isTrue();
    PrivatePragma privatePragma = pragmas.privatePragma.get();
    assertThat(privatePragma.includeOther.isPresent()).isTrue();
    assertThat(privatePragma.includeOther.get()).isEqualTo(IncludePath.create("public.h", Delimiters.QUOTES));
}
Also used : OCFile(com.jetbrains.cidr.lang.psi.OCFile) PrivatePragma(com.google.idea.blaze.cpp.includes.IwyuPragmas.PrivatePragma) Test(org.junit.Test)

Example 30 with OCFile

use of com.jetbrains.cidr.lang.psi.OCFile in project intellij by bazelbuild.

the class IwyuPragmasTest method incomplete_parsePrivate.

@Test
public void incomplete_parsePrivate() {
    OCFile file = createFile("private.h", "// Stuff", "// IWYU pragma: privat", "#include \"private_details.h\"");
    IwyuPragmas pragmas = IwyuPragmas.parse(file);
    assertThat(pragmas.privatePragma.isPresent()).isFalse();
}
Also used : OCFile(com.jetbrains.cidr.lang.psi.OCFile) Test(org.junit.Test)

Aggregations

OCFile (com.jetbrains.cidr.lang.psi.OCFile)35 Test (org.junit.Test)28 PrivatePragma (com.google.idea.blaze.cpp.includes.IwyuPragmas.PrivatePragma)8 PsiFile (com.intellij.psi.PsiFile)5 TargetMap (com.google.idea.blaze.base.ideinfo.TargetMap)3 ProjectView (com.google.idea.blaze.base.projectview.ProjectView)3 Project (com.intellij.openapi.project.Project)3 OCReferenceElement (com.jetbrains.cidr.lang.psi.OCReferenceElement)3 OCImportSymbolFix (com.jetbrains.cidr.lang.quickfixes.OCImportSymbolFix)3 ImmutableList (com.google.common.collect.ImmutableList)2 GotoRelatedItem (com.intellij.navigation.GotoRelatedItem)2 VirtualFile (com.intellij.openapi.vfs.VirtualFile)2 List (java.util.List)2 Nullable (javax.annotation.Nullable)2 BlazeProjectData (com.google.idea.blaze.base.model.BlazeProjectData)1 MockBlazeProjectDataManager (com.google.idea.blaze.base.model.MockBlazeProjectDataManager)1 WorkspacePath (com.google.idea.blaze.base.model.primitives.WorkspacePath)1 BlazeContext (com.google.idea.blaze.base.scope.BlazeContext)1 PsiFileNode (com.intellij.ide.projectView.impl.nodes.PsiFileNode)1 Couple (com.intellij.openapi.util.Couple)1