// Souffle - A Datalog Compiler
// Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved
// Licensed under the Universal Permissive License v 1.0 as shown at:
// - https://opensource.org/licenses/UPL
// - <souffle root>/licenses/SOUFFLE-UPL.txt

// Test the use of overridable in components

.comp A {
    .decl Rel(x:number) overridable
.output Rel()
    Rel(1).
}

.comp B : A {
    .override Rel
    Rel(2).
}

.comp C : B {
    .override Rel
    Rel(3).
}

.comp D : B {
    Rel(4).
}

.comp E : A {
    Rel(5).
}

.comp F : E {
    .override Rel
    Rel(6).
}

.init a = A
.init b = B
.init c = C
.init d = D
.init e = E
.init f = F
