197973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong/* 297973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong * Copyright (C) 2016 The Android Open Source Project 397973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong * 497973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong * Licensed under the Apache License, Version 2.0 (the "License"); 597973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong * you may not use this file except in compliance with the License. 697973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong * You may obtain a copy of the License at 797973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong * 897973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong * http://www.apache.org/licenses/LICENSE-2.0 997973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong * 1097973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong * Unless required by applicable law or agreed to in writing, software 1197973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong * distributed under the License is distributed on an "AS IS" BASIS, 1297973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1397973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong * See the License for the specific language governing permissions and 1497973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong * limitations under the License. 1597973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong */ 1697973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong 1797973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hongpackage android.hardware.tests.bar@1.0; 1897973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong 1997973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hongimport android.hardware.tests.foo@1.0; 2097973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong 2197973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Honginterface IImportRules { 2297973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong // Note that there is a android.hardware.tests.foo@1.0::Outer in types.hal 2397973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong struct Outer { 2497973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong struct Inner { 2597973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong int32_t data; 2697973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong }; 2797973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong string data; 2897973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong }; 2997973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong 3097973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong rule0a(Outer o); // should be resolved to Outer above 3197973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong rule0a1(IImportRules.Outer o); // should be resolved to Outer above 3297973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong rule0b(@1.0::IImportRules.Outer o); 330cf302463a15930061bbadfba8396e9164dbcf8aSteven Moreland rule0b1(android.hardware.tests.bar@1.0::IImportRules.Outer o); 3497973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong rule0c(android.hardware.tests.foo@1.0::Outer o); 3597973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong rule0d(@1.0::Outer o); // android.hardware.tests.foo@1.0::Outer 3697973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong rule0e(Outer.Inner o); // should be resolved to Outer above 3797973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong rule0f(@1.0::IImportRules.Outer.Inner o); 3897973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong rule0g(android.hardware.tests.foo@1.0::Outer.Inner o); 3997973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong rule0h(@1.0::Outer.Inner o); // android.hardware.tests.foo@1.0::Outer.Inner 4097973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong 4197973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong rule1a(Def abc); // should be resolved to Def in types.hal in this package 4297973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong rule1b(android.hardware.tests.foo@1.0::Def abc); 4397973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong 4497973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong rule2a(Unrelated related); 4597973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong 4697973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong // android.hardware.tests.foo@1.0::IFooCallback, since bar@1.0::IFooCallback is not imported. 4797973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong rule2b(IFooCallback fooCallback); 4897973c69c8b77a0f7ef0ff73f5037cfdcc28f5acYifan Hong}; 49